From aaf0abfb1ab113fc5037f8ee1cc788d43fb4203a Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 20 Aug 2025 06:43:15 +0000 Subject: [PATCH 01/31] build: enforce frozen lockfile mode This commit adds `lockfile_mode=error` to the `.bazelrc` file. This change ensures that any future builds will fail if the lock file is not up-to-date with the `BUILD.bazel` file, preventing inconsistencies and encouraging developers to commit updated lock files. (cherry picked from commit a8b049af5d5b7eb8b01caeed91b18b131029d612) --- .bazelrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.bazelrc b/.bazelrc index 4f79c86cf3b4..816134dca1ef 100644 --- a/.bazelrc +++ b/.bazelrc @@ -16,6 +16,9 @@ test:debug --test_arg=--node_options=--inspect-brk --test_output=streamed --test # The below is useful to while using `fit` and `fdescribe` to avoid sharing and re-runs of failed flaky tests. test:no-sharding --flaky_test_attempts=1 --test_sharding_strategy=disabled +# Frozen lockfile +common --lockfile_mode=error + ############################### # Filesystem interactions # ############################### From 61e057afdb5d690b1f1aadf17e16b4d9095fd6a7 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 20 Aug 2025 15:31:50 +0000 Subject: [PATCH 02/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 42 +-- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 28 +- packages/angular/build/package.json | 2 +- packages/angular/ssr/package.json | 12 +- .../angular_devkit/build_angular/package.json | 2 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 350 ++++++++---------- 15 files changed, 234 insertions(+), 276 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index e92931a1cf80..10f389d2f7fe 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@16e272eaa88efe5891e7e6c8e13b956ae7e5a73e + uses: angular/dev-infra/github-actions/setup-wsl@5dcd68302563500c0931b35b8d42e03ad5157db1 with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f55b9c8510c9..f0990e775216 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/branch-manager@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 882250aa1c95..dbfb3a0c35c8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 7d8f337c4225..a5272ec58428 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/pull-request-labeling@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/post-approval-changes@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 032707e874f5..cde9ef5cd907 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/feature-request@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ea9aa9331c1d..4e8d2393e00d 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 33abf4ad87f0..9f95f87c9ac8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/linting/licenses@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - 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 }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -157,13 +157,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -180,12 +180,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 38d86e49442a..06e64b582497 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "7a11f99c467ca5ae4411c27beeec4300e32b616a", + commit = "5dcd68302563500c0931b35b8d42e03ad5157db1", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3de8fc892ff1..2789593768c8 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -517,7 +517,7 @@ "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "e30c5be9ae9025cfc8468441b2b0701177ca633c16284043d376fc16b195315c", + "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 5d01146dc941..dcb9e53a59d4 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.0-rc.0", - "@angular/cdk": "20.2.0-next.3", - "@angular/common": "20.2.0-rc.0", - "@angular/compiler": "20.2.0-rc.0", - "@angular/compiler-cli": "20.2.0-rc.0", - "@angular/core": "20.2.0-rc.0", - "@angular/forms": "20.2.0-rc.0", - "@angular/localize": "20.2.0-rc.0", - "@angular/material": "20.2.0-next.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982", - "@angular/platform-browser": "20.2.0-rc.0", - "@angular/platform-server": "20.2.0-rc.0", - "@angular/router": "20.2.0-rc.0", - "@angular/service-worker": "20.2.0-rc.0", + "@angular/animations": "20.2.0", + "@angular/cdk": "20.2.0", + "@angular/common": "20.2.0", + "@angular/compiler": "20.2.0", + "@angular/compiler-cli": "20.2.0", + "@angular/core": "20.2.0", + "@angular/forms": "20.2.0", + "@angular/localize": "20.2.0", + "@angular/material": "20.2.0", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3", + "@angular/platform-browser": "20.2.0", + "@angular/platform-server": "20.2.0", + "@angular/router": "20.2.0", + "@angular/service-worker": "20.2.0", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index 692f51f21575..4fffaacd8424 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -53,7 +53,7 @@ "@angular-devkit/core": "workspace:*", "jsdom": "26.1.0", "less": "4.4.0", - "ng-packagr": "20.2.0-next.1", + "ng-packagr": "20.2.0", "postcss": "8.5.6", "rxjs": "7.8.2", "vitest": "3.2.4" diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 8cde00db2483..87d4700da7c0 100644 --- a/packages/angular/ssr/package.json +++ b/packages/angular/ssr/package.json @@ -29,12 +29,12 @@ }, "devDependencies": { "@angular-devkit/schematics": "workspace:*", - "@angular/common": "20.2.0-rc.0", - "@angular/compiler": "20.2.0-rc.0", - "@angular/core": "20.2.0-rc.0", - "@angular/platform-browser": "20.2.0-rc.0", - "@angular/platform-server": "20.2.0-rc.0", - "@angular/router": "20.2.0-rc.0", + "@angular/common": "20.2.0", + "@angular/compiler": "20.2.0", + "@angular/core": "20.2.0", + "@angular/platform-browser": "20.2.0", + "@angular/platform-server": "20.2.0", + "@angular/router": "20.2.0", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 9d1df7de64be..82d869b5360c 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -68,7 +68,7 @@ "@angular/ssr": "workspace:*", "@web/test-runner": "0.20.2", "browser-sync": "3.0.4", - "ng-packagr": "20.2.0-next.1", + "ng-packagr": "20.2.0", "undici": "7.13.0" }, "peerDependencies": { diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 8ad490c870c5..319709ad8646 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -27,8 +27,8 @@ }, "devDependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", - "@angular/compiler": "20.2.0-rc.0", - "@angular/compiler-cli": "20.2.0-rc.0", + "@angular/compiler": "20.2.0", + "@angular/compiler-cli": "20.2.0", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39cbc969e234..0885f2f68745 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.0-rc.0 - version: 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)) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.0-next.3 - version: 20.2.0-next.3(@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))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.2.0-rc.0 - version: 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) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/compiler-cli': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) '@angular/core': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.0-rc.0 - version: 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/platform-browser@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)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(@angular/compiler@20.2.0-rc.0) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0) '@angular/material': - specifier: 20.2.0-next.3 - version: 20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d) + specifier: 20.2.0 + version: 20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@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)) + specifier: 20.2.0 + version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0-rc.0 - version: 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/compiler@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))(@angular/platform-browser@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)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0-rc.0 - version: 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/platform-browser@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)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.2.0-rc.0 - version: 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) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -438,8 +438,8 @@ importers: specifier: 4.4.0 version: 4.4.0 ng-packagr: - specifier: 20.2.0-next.1 - version: 20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - specifier: 20.2.0-rc.0 - version: 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) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/core': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) '@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)) + specifier: 20.2.0 + version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0-rc.0 - version: 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/compiler@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))(@angular/platform-browser@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)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0-rc.0 - version: 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/platform-browser@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)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -760,8 +760,8 @@ importers: specifier: 3.0.4 version: 3.0.4(bufferutil@4.0.9) ng-packagr: - specifier: 20.2.0-next.1 - version: 20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/compiler-cli': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,47 +975,47 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.0-rc.0': - resolution: {integrity: sha512-f49VReWNKRbFznUAniGuVfSD/lmuABiL2KYaV7NVguGR1UWOagArr8WkG9G5UMpR+/LXKPCYZZAPjdOXu0bQOg==} + '@angular/animations@20.2.0': + resolution: {integrity: sha512-byenV4zWPCP8COriHO+1FGCG/3+xUqzX4VSWashWsGHuXv/AKboh88qVL4xGvDGESEdqN/tpiU9KBonue+Axvg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 - '@angular/cdk@20.2.0-next.3': - resolution: {integrity: sha512-hNKVLAIlDh5H3QL0gNOJ6W5xxS9v5EDzyWI3eOe7ZnrUGmcEr9ViiDGrTEmu6aEMycXI1PUJ+jfoGLSaAmR+fQ==} + '@angular/cdk@20.2.0': + resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} peerDependencies: - '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 + '@angular/common': ^20.0.0 || ^21.0.0 + '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.0-rc.0': - resolution: {integrity: sha512-kWd/NY/18pXX8wXKlmgPi6ZKiQxHxLEAcescZypbsJNhV4u7nKeeEkr0SZD/uj7Bfg1rcDnnD2vk1BMTBSnXcw==} + '@angular/common@20.2.0': + resolution: {integrity: sha512-mh0tF+QjCx1udoeBP4adOXVHVZ1E8okzT/yybYamD5abLiaMSSh4P50JTBuPmJgqqWo9MXDLOLTnKqBSv/FbZw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.0-rc.0 + '@angular/core': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.0-rc.0': - resolution: {integrity: sha512-Hgm9yAV3jSwfl1A6gHgIWwkfPXDzpI9r6STm3ioxvjKuINbdFXhzWrQGsL85/kuaUJKWBtrHcnlbUi3igqy9Ag==} + '@angular/compiler-cli@20.2.0': + resolution: {integrity: sha512-mZ7R7tMm1KMBZSCOKSeE9gb37u2ZGc5YlQ8bIgKo+Uik2uvXVDDG1NC/Qe/medYCriSGmI6HqfFce50Nx8/Uxg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.0-rc.0': - resolution: {integrity: sha512-YqgnfOoHwSqy6LN8E4+yIutNGt4RaAwqfxBM8wywb80I5F8GswFuszcZgtAMJqcGvUdKsr9YU0GYMu5HiYVMaw==} + '@angular/compiler@20.2.0': + resolution: {integrity: sha512-1kI7VFvuTODX/1TusUH/L1N+SDcDj9m/j/0Ewq+IKkizS4eOjgx+7UGBuTjw9yWZ7QQGEPdoQG9qsM2dhs9dUQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.0-rc.0': - resolution: {integrity: sha512-6YGTSHtwlagaPAQPGSBGxw5ZcT+oh+ShQJPq08UGXQWZ7Owfioxe1y36MRk0aRolmVOdUhXA/r8EVEmEwyqL+Q==} + '@angular/core@20.2.0': + resolution: {integrity: sha512-4qXWdKYRFNlc1FfgNfYF5189rZ8BnvU5DN2iH2/djRdRJikpm3+JeEuFW7GFjF9dyjOE97x0S3dbVHs0c5mcYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,74 +1024,74 @@ packages: zone.js: optional: true - '@angular/forms@20.2.0-rc.0': - resolution: {integrity: sha512-pMLN+IOyjgmdDVTHoPCL+q0JgMrGLSl1YvZXul8n4p2xpA09c2aqj7eStTVIwxCT1GCsd7RSM7bsKoYlYuOTdQ==} + '@angular/forms@20.2.0': + resolution: {integrity: sha512-vG5FIMCGNDMbaWPSazd5Jv14cW+aVUg8G5ikWRSGU1aou7uzmzT2n+zpg4PDSxOFeNXuSZV3n5zJ5prM1NaYJg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.0-rc.0': - resolution: {integrity: sha512-cDpZogQbtbPBVaB9foYcgyOEWB56qDbDaiS4bFGJIkL67QUcN4C6py2YefgRe8424dkeviqrfRUY5PlpQbBQMw==} + '@angular/localize@20.2.0': + resolution: {integrity: sha512-XKYinzSPk72Eae60HpP5yWPLf6Yo/y5esd20/gRRpZ0rQMbRFPtWoHnAk+5jOCeQaBaxx25MX312TVLxjS5+0Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0-rc.0 - '@angular/compiler-cli': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 + '@angular/compiler-cli': 20.2.0 - '@angular/material@20.2.0-next.3': - resolution: {integrity: sha512-QvWIHqU1MkfumtyvR0r84O+EI9dL1w7tQlcwpfZyRy0b87P7T5BL+IlUVE3+gTYmCv1tYtVSzzb88MBw0BfNsQ==} + '@angular/material@20.2.0': + resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} peerDependencies: - '@angular/cdk': 20.2.0-next.3 - '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/forms': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/platform-browser': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 + '@angular/cdk': 20.2.0 + '@angular/common': ^20.0.0 || ^21.0.0 + '@angular/core': ^20.0.0 || ^21.0.0 + '@angular/forms': ^20.0.0 || ^21.0.0 + '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982} - version: 0.0.0-fada401aa5023cb046753a15bfda9ec520eb4ed6 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3} + version: 0.0.0-5dcd68302563500c0931b35b8d42e03ad5157db1 hasBin: true - '@angular/platform-browser@20.2.0-rc.0': - resolution: {integrity: sha512-rOuMeSi76xS/6T9rlAyWUDELzUDRg3BTC7isx6tl6zI8RIuM6GMX7nDy1a+12U3SlTsqNhxPaALLkmM6Tm+GyQ==} + '@angular/platform-browser@20.2.0': + resolution: {integrity: sha512-0CyDeXLQixXAWRBq4vfwALo0a0/igtUH1bFkHBUy4u6Nku7S8K7GG/HDN0CGlpep9Xz9o0ghF1zfZHfmEQxlmg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.0-rc.0 - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 + '@angular/animations': 20.2.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.0-rc.0': - resolution: {integrity: sha512-AMSzSaRcb26H8aDrzzP5+TJRx3IlDJs+C93W4wWJnTd/jmMLkpQFP3S+ZpN6y/pmZXL25Ct5M8ywcb0Ua8aokQ==} + '@angular/platform-server@20.2.0': + resolution: {integrity: sha512-OzVqm3NCGScL4Jd4M3XVTMkCIijYd0NuuVo6UH+UThaFFKde7ISePGaVh0GlXw+rGl9m/gJL3WMIZh3xfqHAlA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/compiler': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/compiler': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.0-rc.0': - resolution: {integrity: sha512-cGoY/Fsy0gmSbBC1AUr/QA3d2883J8Pax8B6ApExSmCAHtXA/hkkD/r48jjlA9TD4hQooPXxA0BrogYeIhnD7A==} + '@angular/router@20.2.0': + resolution: {integrity: sha512-pUrRVdgHkkd1b3GqHpuq/4YJTuNYGXWykg9t5MUjnt94H6gynpyEmYEZB+RNqwTTZLHgRRv9Y7JMRbwIdupNpA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.0-rc.0': - resolution: {integrity: sha512-T5hkP9VYA3DPg89Qg3S0U+EfH5+WxdGzZ9vJueN410CxBRjDZ5rOSYvFxDTiwdsMpNQs+IsjALSeLNF3SDjQ+w==} + '@angular/service-worker@20.2.0': + resolution: {integrity: sha512-ERJQ5KLAXqG0nyD09lZqyVaQv9Es08+5DZZRZf/OQC3GapGV71JcdcEC3yOr5agZLSNFkuiCzufBad5QIvZzPQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.0-rc.0 + '@angular/core': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -1105,10 +1105,6 @@ packages: resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.3': resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} engines: {node: '>=6.9.0'} @@ -1216,10 +1212,6 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.2': - 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'} @@ -6760,12 +6752,12 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - ng-packagr@20.2.0-next.1: - resolution: {integrity: sha512-cqGaUssFYkZf+BHQMozRlfZePb/XCe9QFyyqZkGHRCxbh4rFfkL3m0t3wAOGQtgm4BY784ylXpSI26hXi9zqOQ==} + ng-packagr@20.2.0: + resolution: {integrity: sha512-U8kv9O5hD9ojKlSke44A2NIH5sH0EmQXtQTtMLLrpn7y4LUeCQgTi5t8KsDXoMyCmBKMhDJzioa3R22pOy5vFg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler-cli': ^20.0.0 || ^20.1.0-next.0 || ^20.2.0-next.0 + '@angular/compiler-cli': ^20.0.0 || ^20.2.0-rc tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 typescript: 5.9.2 @@ -9083,30 +9075,30 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@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/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@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(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0-next.3(@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))(rxjs@7.8.2)': + '@angular/cdk@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@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(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.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/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.0-rc.0 - '@babel/core': 7.28.0 + '@angular/compiler': 20.2.0 + '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 convert-source-map: 1.9.0 @@ -9119,48 +9111,48 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.0-rc.0': + '@angular/compiler@20.2.0': dependencies: tslib: 2.8.1 - '@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 zone.js: 0.15.1 - '@angular/forms@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/platform-browser@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)))(rxjs@7.8.2)': + '@angular/forms@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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/platform-browser': 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)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.2.0-rc.0(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(@angular/compiler@20.2.0-rc.0)': + '@angular/localize@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0)': dependencies: - '@angular/compiler': 20.2.0-rc.0 - '@angular/compiler-cli': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) - '@babel/core': 7.28.0 + '@angular/compiler': 20.2.0 + '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 yargs: 18.0.0 transitivePeerDependencies: - supports-color - '@angular/material@20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d)': + '@angular/material@20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec)': dependencies: - '@angular/cdk': 20.2.0-next.3(@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))(rxjs@7.8.2) - '@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/forms': 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/platform-browser@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)))(rxjs@7.8.2) - '@angular/platform-browser': 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)) + '@angular/cdk': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -9222,35 +9214,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@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))': + '@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@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(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@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/animations': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@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/compiler@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))(@angular/platform-browser@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)))(rxjs@7.8.2)': + '@angular/platform-server@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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/compiler': 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) - '@angular/platform-browser': 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)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.0 + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@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/platform-browser@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)))(rxjs@7.8.2)': + '@angular/router@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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/platform-browser': 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)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@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/service-worker@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -9270,26 +9262,6 @@ snapshots: '@babel/compat-data@7.28.0': {} - '@babel/core@7.28.0': - dependencies: - '@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.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@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/core@7.28.3': dependencies: '@ampproject/remapping': 2.3.0 @@ -9390,15 +9362,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@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.27.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 @@ -9466,11 +9429,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - '@babel/helpers@7.28.3': dependencies: '@babel/template': 7.27.2 @@ -15883,10 +15841,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.46.2 ajv: 8.17.1 From f06796769a0be20eaa51e1ab2d2b6468006b2d1b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 20 Aug 2025 15:37:52 +0000 Subject: [PATCH 03/31] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 6 ++--- MODULE.bazel.lock | 65 ++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 06e64b582497..45463d56cc02 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -7,7 +7,7 @@ module( 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 = "aspect_rules_ts", version = "3.7.0") 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. @@ -25,14 +25,14 @@ single_version_override( version = "1.5.3", ) -bazel_dep(name = "aspect_bazel_lib", version = "2.20.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.21.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", + commit = "17eac47ea99057f7473a7d93292e76327c894ed9", remote = "https://github.com/devversion/rules_angular.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 2789593768c8..dbe222baad7a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,8 +15,8 @@ "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.21.0/MODULE.bazel": "2fbd1f58ccbbe28749a248bdadea068a6db27eda8be45f8d60668f48e4025437", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/source.json": "9ce346023624f8d3b58d31d3ef1bf773f85495187386f6de63fd8aaef744c63e", "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", @@ -28,9 +28,11 @@ "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_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", "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/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/source.json": "4d98137d5f74f01e00c6efa8bf591c02718e6c5f31f0bcc73983ea514dd02a12", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", @@ -109,11 +111,14 @@ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", @@ -122,8 +127,11 @@ "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", @@ -153,8 +161,10 @@ "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", @@ -202,7 +212,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "73CpZPjP7vEyFM9OekAg3uSwvTB2xjp4/poCF2+3eVk=", + "bzlTransitiveDigest": "sSVcgtXWHd7osgq50rEZWY2HUmSuNU72/SbhIh5PKsw=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -377,7 +387,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "8j0b3nFWNDqbr6G01xANzp5AVkacJrXmbMs0r/gLu5Y=", + "bzlTransitiveDigest": "aU6dw0RbQaePWr28SJnbI5vd1VoLqJ8DBaheoenhjJ4=", "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -514,7 +524,7 @@ }, "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", + "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", @@ -528,15 +538,9 @@ "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" ] @@ -546,14 +550,8 @@ "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" ] @@ -563,15 +561,9 @@ "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" ] @@ -581,15 +573,9 @@ "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" ] @@ -597,6 +583,16 @@ } }, "recordedRepoMappingEntries": [ + [ + "aspect_rules_ts~", + "aspect_rules_ts", + "aspect_rules_ts~" + ], + [ + "aspect_rules_ts~", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" + ], [ "aspect_rules_ts~", "bazel_tools", @@ -607,8 +603,8 @@ }, "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { - "bzlTransitiveDigest": "cLuD0cAZWm2SwvVSu2NHX+0x33L7A5+Shk+6Qcw9oik=", - "usagesDigest": "+wlgnpY3uHPdBIF0xJrM3S4M8VNpQumRmF42FjBGSE4=", + "bzlTransitiveDigest": "9U/UW6moiJI22q2ERFWJSK1omQJqmQgMYfWCWNL+SXk=", + "usagesDigest": "6/bgMygODvT9WjYi5vm4e/BEkvhIDHgwWRIhAQhvKts=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -619,7 +615,8 @@ "attributes": { "deps": { "aspect_rules_js": "2.4.2", - "aspect_tools_telemetry": "0.2.3" + "aspect_rules_ts": "3.7.0", + "aspect_tools_telemetry": "0.2.6" } } } From ec75be0fd4bde6bc8c3ed929eeac4e2a4a236ce9 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 06:07:17 +0000 Subject: [PATCH 04/31] build: update pnpm to v10.15.0 See associated pull request for more information. --- MODULE.bazel.lock | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index dbe222baad7a..a417c5125f0d 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", + "@@//package.json": "5bdc389ed0400441e1f64082643d1ea2cc5a4b3b9bf1c2cdd66ca8a1d00526f0", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index dcb9e53a59d4..499e21227240 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.14.0", + "packageManager": "pnpm@10.15.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", From 8d7e38db9e370d5b8e1c33d9be9baed00704b0b3 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:21:53 +0000 Subject: [PATCH 05/31] ci: use `D:/` instead of `C:/` and sharding fixes On Windows 2025, `D:/` was re-introduced again this week to improve performance https://github.com/actions/runner-images/issues/12744 Also, this change reduced the shards to 1 on PR workflow, additional we also fix an issue where in each shard we split the tests into another 4 shards which on Windows causes a lot of IO operations. Difference: `e2e_windows (windows-2025, 22, npm, 1)` from `48m 13s` to `20m 16s` (cherry picked from commit a1ef96bc8f9ccb50318fae5cb867407ea66913d8) --- .../windows-bazel-test/action.yml | 14 +++--- .github/workflows/pr.yml | 1 + scripts/windows-testing/parallel-executor.mjs | 44 +++++++++---------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 10f389d2f7fe..2de7132c17cc 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -49,9 +49,11 @@ runs: run: | cd ${{steps.init_wsl.outputs.repo_path}} tar -cf /tmp/test.tar.gz dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_ - mkdir /mnt/c/test - mv /tmp/test.tar.gz /mnt/c/test - (cd /mnt/c/test && tar -xf /mnt/c/test/test.tar.gz) + # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 + mkdir /mnt/d/test + mkdir /mnt/d/tmp_dir + mv /tmp/test.tar.gz /mnt/d/test + (cd /mnt/d/test && tar -xf /mnt/d/test/test.tar.gz) - name: Convert symlinks for Windows host shell: wsl-bash {0} @@ -61,7 +63,7 @@ runs: 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" + runfiles_dir="/mnt/d/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" # Make WSL symlinks compatible on Windows native file system. node scripts/windows-testing/convert-symlinks.mjs $runfiles_dir "${{steps.init_wsl.outputs.cmd_path}}" @@ -75,7 +77,9 @@ runs: shell: bash env: BAZEL_BINDIR: '.' - working-directory: "C:\\test" + # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 + E2E_TEMP: 'D:\\tmp_dir' + working-directory: "D:\\test" run: | node "${{github.workspace}}\\scripts\\windows-testing\\parallel-executor.mjs" \ $PWD/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 9f95f87c9ac8..9c88b05db4f2 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -142,6 +142,7 @@ jobs: - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test with: + E2E_SHARD_TOTAL: 1 test_target_name: e2e_node22 test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs index a416d5c90def..7a7ec7508929 100644 --- a/scripts/windows-testing/parallel-executor.mjs +++ b/scripts/windows-testing/parallel-executor.mjs @@ -14,36 +14,32 @@ const initialStatusRegex = /Running (\d+) tests/; async function main() { const [runfilesDir, targetName, testArgs] = process.argv.slice(2); - const maxShards = 4; - const testEntrypoint = path.resolve(runfilesDir, '../', targetName); const testWorkingDir = path.resolve(runfilesDir, '_main'); const tasks = []; const progress = {}; - for (let i = 0; i < maxShards; i++) { - tasks.push( - spawnTest( - 'bash', - [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], - { - cwd: testWorkingDir, - env: { - // Try to construct a pretty hermetic environment, as within Bazel. - PATH: process.env.PATH, - TEST_TOTAL_SHARDS: maxShards, - TEST_SHARD_INDEX: i, - E2E_SHARD_TOTAL: process.env.E2E_SHARD_TOTAL, - E2E_SHARD_INDEX: process.env.E2E_SHARD_INDEX, - FORCE_COLOR: '3', - // Needed by `rules_js` - BAZEL_BINDIR: '.', - }, + tasks.push( + spawnTest( + 'bash', + [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], + { + cwd: testWorkingDir, + env: { + // Try to construct a pretty hermetic environment, as within Bazel. + PATH: process.env.PATH, + E2E_SHARD_TOTAL: process.env.E2E_SHARD_TOTAL, + E2E_SHARD_INDEX: process.env.E2E_SHARD_INDEX, + FORCE_COLOR: '3', + // Needed by `rules_js` + BAZEL_BINDIR: '.', + // Needed to run the E2E in a different temp path. + E2E_TEMP: process.env.E2E_TEMP, }, - (s) => (progress[i] = s), - ), - ); - } + }, + (s) => (progress[0] = s), + ), + ); const printUpdate = () => { console.error(`----`); From 6937123a393e2ba9221962b0174056c14437a988 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:27:27 -0400 Subject: [PATCH 06/31] fix(@schematics/angular): directly resolve karma config template in migration To attempt to workaround Windows pathing issues in the karma configuration migration, the default karma template is now resolved via `require.resolve`. (cherry picked from commit 6c7b798332786d29070460669e093e37902c4438) --- .../angular/migrations/karma/karma-config-comparer.ts | 2 +- .../schematics/angular/migrations/migration-collection.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/schematics/angular/migrations/karma/karma-config-comparer.ts b/packages/schematics/angular/migrations/karma/karma-config-comparer.ts index 2656ea65f406..0c11a7196f1c 100644 --- a/packages/schematics/angular/migrations/karma/karma-config-comparer.ts +++ b/packages/schematics/angular/migrations/karma/karma-config-comparer.ts @@ -41,7 +41,7 @@ export async function generateDefaultKarmaConfig( projectName: string, needDevkitPlugin: boolean, ): Promise { - const templatePath = path.join(__dirname, '../../config/files/karma.conf.js.template'); + const templatePath = require.resolve('../../config/files/karma.conf.js.template'); let template = await readFile(templatePath, 'utf-8'); // TODO: Replace this with the actual schematic templating logic. diff --git a/packages/schematics/angular/migrations/migration-collection.json b/packages/schematics/angular/migrations/migration-collection.json index ec0311d27d97..ad8607071294 100644 --- a/packages/schematics/angular/migrations/migration-collection.json +++ b/packages/schematics/angular/migrations/migration-collection.json @@ -1,4 +1,5 @@ { + "encapsulation": false, "schematics": { "replace-provide-server-rendering-import": { "version": "20.0.0", From ffff9ea2ffe74b0377ace243a1c497180cec1ec9 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:57:34 -0400 Subject: [PATCH 07/31] refactor(@angular/cli): allow first-party schematics to override encapsulation In some cases it may be needed to override the schematics encapsulation option for some first-party schematics. While this is not recommended, certain Node.js functionality may need to be available. (cherry picked from commit 12533a8c4e908885ecc4060262b54c6bdea32106) --- .../utilities/schematic-engine-host.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts b/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts index e4b805f1a367..25b723c467a2 100644 --- a/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts +++ b/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts @@ -20,7 +20,10 @@ import { assertIsError } from '../../utilities/error'; */ const schematicRedirectVariable = process.env['NG_SCHEMATIC_REDIRECT']?.toLowerCase(); -function shouldWrapSchematic(schematicFile: string, schematicEncapsulation: boolean): boolean { +function shouldWrapSchematic( + schematicFile: string, + schematicEncapsulation: boolean | undefined, +): boolean { // Check environment variable if present switch (schematicRedirectVariable) { case '0': @@ -52,12 +55,12 @@ function shouldWrapSchematic(schematicFile: string, schematicEncapsulation: bool // Check for first-party Angular schematic packages // Angular schematics are safe to use in the wrapped VM context - if (/\/node_modules\/@(?:angular|schematics|nguniversal)\//.test(normalizedSchematicFile)) { - return true; - } + const isFirstParty = /\/node_modules\/@(?:angular|schematics|nguniversal)\//.test( + normalizedSchematicFile, + ); - // Otherwise use the value of the schematic collection's encapsulation option (current default of false) - return schematicEncapsulation; + // Use value of defined option if present, otherwise default to first-party usage. + return schematicEncapsulation ?? isFirstParty; } export class SchematicEngineHost extends NodeModulesEngineHost { @@ -73,7 +76,7 @@ export class SchematicEngineHost extends NodeModulesEngineHost { const referenceRequire = createRequire(__filename); const schematicFile = referenceRequire.resolve(fullPath, { paths: [parentPath] }); - if (shouldWrapSchematic(schematicFile, !!collectionDescription?.encapsulation)) { + if (shouldWrapSchematic(schematicFile, collectionDescription?.encapsulation)) { const schematicPath = dirname(schematicFile); const moduleCache = new Map(); From 9d6863bc05f4b449e0ffbd4e4973b064f0349b38 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 13:12:56 +0000 Subject: [PATCH 08/31] build: update github/codeql-action action to v3.29.11 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f2bb3940a3b6..554d2dfab71c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -23,12 +23,12 @@ jobs: with: persist-credentials: false - name: Initialize CodeQL - uses: github/codeql-action/init@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/init@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/analyze@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b2ed77eab147..bbca5b6bc870 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -46,6 +46,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/upload-sarif@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: sarif_file: results.sarif From 22895074ae3fe93b22552febe1f77e523c003625 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 18:07:13 +0000 Subject: [PATCH 09/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 42 +-- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 24 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 268 +++++++++--------- 13 files changed, 210 insertions(+), 210 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 2de7132c17cc..0bcd5cfd0c84 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/setup-wsl@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f0990e775216..98e655c2189f 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/branch-manager@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbfb3a0c35c8..b4cc5fe9ba69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a5272ec58428..d85991daed54 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/pull-request-labeling@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/post-approval-changes@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index cde9ef5cd907..c8287f18d095 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/feature-request@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 4e8d2393e00d..a1cc139e2f06 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 9c88b05db4f2..a2c4d35f6b1f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/linting/licenses@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - 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 }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -158,13 +158,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -181,12 +181,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 45463d56cc02..dd0f0a7a0d0b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "5dcd68302563500c0931b35b8d42e03ad5157db1", + commit = "9cc4fc69c644e345ce44169c7cd84e729c8d29bb", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a417c5125f0d..7c2684041688 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "5bdc389ed0400441e1f64082643d1ea2cc5a4b3b9bf1c2cdd66ca8a1d00526f0", + "@@//package.json": "728fa6842f644227e282f7b8158ddfa67deeec5068ede098d72df6addbc2b5b6", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 499e21227240..7fef0db5bdb1 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.0", + "@angular/animations": "20.2.1", "@angular/cdk": "20.2.0", - "@angular/common": "20.2.0", - "@angular/compiler": "20.2.0", - "@angular/compiler-cli": "20.2.0", - "@angular/core": "20.2.0", - "@angular/forms": "20.2.0", - "@angular/localize": "20.2.0", + "@angular/common": "20.2.1", + "@angular/compiler": "20.2.1", + "@angular/compiler-cli": "20.2.1", + "@angular/core": "20.2.1", + "@angular/forms": "20.2.1", + "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3", - "@angular/platform-browser": "20.2.0", - "@angular/platform-server": "20.2.0", - "@angular/router": "20.2.0", - "@angular/service-worker": "20.2.0", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465", + "@angular/platform-browser": "20.2.1", + "@angular/platform-server": "20.2.1", + "@angular/router": "20.2.1", + "@angular/service-worker": "20.2.1", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 87d4700da7c0..839432fe864c 100644 --- a/packages/angular/ssr/package.json +++ b/packages/angular/ssr/package.json @@ -29,12 +29,12 @@ }, "devDependencies": { "@angular-devkit/schematics": "workspace:*", - "@angular/common": "20.2.0", - "@angular/compiler": "20.2.0", - "@angular/core": "20.2.0", - "@angular/platform-browser": "20.2.0", - "@angular/platform-server": "20.2.0", - "@angular/router": "20.2.0", + "@angular/common": "20.2.1", + "@angular/compiler": "20.2.1", + "@angular/core": "20.2.1", + "@angular/platform-browser": "20.2.1", + "@angular/platform-server": "20.2.1", + "@angular/router": "20.2.1", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 319709ad8646..ece914ec8df0 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -27,8 +27,8 @@ }, "devDependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", - "@angular/compiler": "20.2.0", - "@angular/compiler-cli": "20.2.0", + "@angular/compiler": "20.2.1", + "@angular/compiler-cli": "20.2.1", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0885f2f68745..6119e18f55c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/compiler-cli': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@angular/core': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1) '@angular/material': specifier: 20.2.0 - version: 20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec) + version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.2.0 - version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/core': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.2.0 - version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/compiler-cli': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,12 +975,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.0': - resolution: {integrity: sha512-byenV4zWPCP8COriHO+1FGCG/3+xUqzX4VSWashWsGHuXv/AKboh88qVL4xGvDGESEdqN/tpiU9KBonue+Axvg==} + '@angular/animations@20.2.1': + resolution: {integrity: sha512-g4yLXwXCF7OAahx1xI4FXRwG4dIXfBqHsvlpx2TappaMRpiPp7PfP2cW6l3ox+KRpTWhSvcRqbJyIOWad0f7Rw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 '@angular/cdk@20.2.0': resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} @@ -989,33 +989,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.0': - resolution: {integrity: sha512-mh0tF+QjCx1udoeBP4adOXVHVZ1E8okzT/yybYamD5abLiaMSSh4P50JTBuPmJgqqWo9MXDLOLTnKqBSv/FbZw==} + '@angular/common@20.2.1': + resolution: {integrity: sha512-T6RYnDZA9TyYhj2hUz4set8p4RbBCg6IKUvy6qzdKTl4nn4xQ0XUV7aGBYN4LKiGrse9lzlVUAyXtkhmwuBbCQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.0 + '@angular/core': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.0': - resolution: {integrity: sha512-mZ7R7tMm1KMBZSCOKSeE9gb37u2ZGc5YlQ8bIgKo+Uik2uvXVDDG1NC/Qe/medYCriSGmI6HqfFce50Nx8/Uxg==} + '@angular/compiler-cli@20.2.1': + resolution: {integrity: sha512-VpbcRqNPJvy1L9RDtGGQsQiOrMzxodUWklphbtnh9MrrK6lLuy6Qj2ROiW7vKL9WfLTCXWA24gBAcMAR76dq3Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.0': - resolution: {integrity: sha512-1kI7VFvuTODX/1TusUH/L1N+SDcDj9m/j/0Ewq+IKkizS4eOjgx+7UGBuTjw9yWZ7QQGEPdoQG9qsM2dhs9dUQ==} + '@angular/compiler@20.2.1': + resolution: {integrity: sha512-ghVt1E8xmwjMwqyGRwXYJkr7fz40VEreUSX1q+gEzbGTftVrK1foxPT8jcueIn0ztArDf7+zSMtu314FiJZyYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.0': - resolution: {integrity: sha512-4qXWdKYRFNlc1FfgNfYF5189rZ8BnvU5DN2iH2/djRdRJikpm3+JeEuFW7GFjF9dyjOE97x0S3dbVHs0c5mcYA==} + '@angular/core@20.2.1': + resolution: {integrity: sha512-/hl3AkmdQ62P9ttmfULEDg9GIz7BkzhGv9bSH2ssiU3Y4ax6eM8uQXEbMxBA8OUKOvg1Q4POcNHIiJQgO5t28Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,22 +1024,22 @@ packages: zone.js: optional: true - '@angular/forms@20.2.0': - resolution: {integrity: sha512-vG5FIMCGNDMbaWPSazd5Jv14cW+aVUg8G5ikWRSGU1aou7uzmzT2n+zpg4PDSxOFeNXuSZV3n5zJ5prM1NaYJg==} + '@angular/forms@20.2.1': + resolution: {integrity: sha512-SfkiHEIFPLtTKeaXUTpRfYnpJDxaeKiTi0YqfvzEjKE68qH0t+pQ4rL0Poch2/l4snP6JS1XzO/nDve1dk3vZw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.0': - resolution: {integrity: sha512-XKYinzSPk72Eae60HpP5yWPLf6Yo/y5esd20/gRRpZ0rQMbRFPtWoHnAk+5jOCeQaBaxx25MX312TVLxjS5+0Q==} + '@angular/localize@20.2.1': + resolution: {integrity: sha512-vemzYcHt6YX4FutpgNXiXTpKCMVaJdOG/m2+oJyvnr8KvdlrJKczXraPVY4ER+WJiHC5IQSg24otdSFc0UH2JA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0 - '@angular/compiler-cli': 20.2.0 + '@angular/compiler': 20.2.1 + '@angular/compiler-cli': 20.2.1 '@angular/material@20.2.0': resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} @@ -1051,47 +1051,47 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3} - version: 0.0.0-5dcd68302563500c0931b35b8d42e03ad5157db1 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465} + version: 0.0.0-974f5f6e013469225b2716078fe0b09c66d81c99 hasBin: true - '@angular/platform-browser@20.2.0': - resolution: {integrity: sha512-0CyDeXLQixXAWRBq4vfwALo0a0/igtUH1bFkHBUy4u6Nku7S8K7GG/HDN0CGlpep9Xz9o0ghF1zfZHfmEQxlmg==} + '@angular/platform-browser@20.2.1': + resolution: {integrity: sha512-oxDih/A8G7W+I6oAip+sev+kebioYmzhB/NMzF8C8zx/ieVDzatJ+YeEZQt7eDaJLH94S4sIC25SPq3OFIabxg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.0 - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 + '@angular/animations': 20.2.1 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.0': - resolution: {integrity: sha512-OzVqm3NCGScL4Jd4M3XVTMkCIijYd0NuuVo6UH+UThaFFKde7ISePGaVh0GlXw+rGl9m/gJL3WMIZh3xfqHAlA==} + '@angular/platform-server@20.2.1': + resolution: {integrity: sha512-yjos8jgHwcih9lF/CKjbKxzzc83NM+ZoIdm/XSVv9yg+QDnTsc6bLF3QZ+OChCoaCks/UtWUwyM7Ux2g/VvVFA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/compiler': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/compiler': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.0': - resolution: {integrity: sha512-pUrRVdgHkkd1b3GqHpuq/4YJTuNYGXWykg9t5MUjnt94H6gynpyEmYEZB+RNqwTTZLHgRRv9Y7JMRbwIdupNpA==} + '@angular/router@20.2.1': + resolution: {integrity: sha512-f8KfG55EVnFDC9ud+MbxAP6voKi7hVQH4YaqPK0Lm6pyc1Xp0I5W25iRbg+Y1rO1csHKHauBPkUEESEuVGBGqg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.0': - resolution: {integrity: sha512-ERJQ5KLAXqG0nyD09lZqyVaQv9Es08+5DZZRZf/OQC3GapGV71JcdcEC3yOr5agZLSNFkuiCzufBad5QIvZzPQ==} + '@angular/service-worker@20.2.1': + resolution: {integrity: sha512-BiwtxSXooM/JlW6C0TixogHxXyL4eio9fcwsJTBgqoyfuom+GI+VMcDKcVi5X6cJnfpbmSzO1qNEzpdr+EgqvQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.0 + '@angular/core': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -9075,29 +9075,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9111,30 +9111,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.0': + '@angular/compiler@20.2.1': dependencies: tslib: 2.8.1 - '@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 zone.js: 0.15.1 - '@angular/forms@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0)': + '@angular/localize@20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1)': dependencies: - '@angular/compiler': 20.2.0 - '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@angular/compiler': 20.2.1 + '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9142,17 +9142,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec)': + '@angular/material@20.2.0(bcb75b43408852e5fcaf27839f79fc2c)': dependencies: - '@angular/cdk': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -9214,35 +9214,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.0 - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.1 + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -15841,10 +15841,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.46.2 ajv: 8.17.1 From f9424244ce16142defd9da33a9f90a42005fab8a Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 21 Aug 2025 18:33:26 +0000 Subject: [PATCH 10/31] ci: set `E2E_SHARD_TOTAL` as env variable Whlist this defaults to 1 when not supplied, it's cleaner that this is 1. Also, this is not an action input. (cherry picked from commit 290ac55c31e86109334ccd1993bc8f4a0999722a) --- .github/workflows/pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a2c4d35f6b1f..fbce65ae5e19 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -141,8 +141,9 @@ jobs: allow_windows_rbe: true - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test - with: + env: E2E_SHARD_TOTAL: 1 + with: test_target_name: e2e_node22 test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" From f89aa0a9582cffaed5804b0fab46d01cc5fdc951 Mon Sep 17 00:00:00 2001 From: Aristeidis Bampakos Date: Thu, 21 Aug 2025 18:21:00 +0300 Subject: [PATCH 11/31] build(@angular-devkit/schematics-cli): move TypeScript to development dependencies (cherry picked from commit 989e9889fb917dbc38f656d0604531702e5fcbec) --- .../schematics_cli/schematic/files/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/angular_devkit/schematics_cli/schematic/files/package.json b/packages/angular_devkit/schematics_cli/schematic/files/package.json index 27401b64c629..c050ebeda711 100644 --- a/packages/angular_devkit/schematics_cli/schematic/files/package.json +++ b/packages/angular_devkit/schematics_cli/schematic/files/package.json @@ -14,12 +14,12 @@ "schematics": "./src/collection.json", "dependencies": { "@angular-devkit/core": "^<%= coreVersion %>", - "@angular-devkit/schematics": "^<%= schematicsVersion %>", - "typescript": "~5.9.2" + "@angular-devkit/schematics": "^<%= schematicsVersion %>" }, "devDependencies": { "@types/node": "^20.17.19", "@types/jasmine": "~5.1.0", - "jasmine": "~5.9.0" + "jasmine": "~5.9.0", + "typescript": "~5.9.2" } } From 1b6f98ed6fb01f11bb622ff7bd7562796998c05f Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Wed, 13 Aug 2025 12:02:08 +0200 Subject: [PATCH 12/31] refactor(@angular/cli): remove non runnable migrations in mcp modernize tool The `test-bed-get` migration is not runnable via `ng g @angular/core` and references an non-existing documentation page. `zoneless` does not exist for now (Angular v20.2.0-rc.0). (cherry picked from commit 0f2694464f4bae590a6fd3ed8893038a6d1adc15) --- .../angular/cli/src/commands/mcp/tools/modernize.ts | 11 ----------- .../cli/src/commands/mcp/tools/modernize_spec.ts | 8 ++++---- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/modernize.ts b/packages/angular/cli/src/commands/mcp/tools/modernize.ts index ec4a4b02c913..2b4c323d60f7 100644 --- a/packages/angular/cli/src/commands/mcp/tools/modernize.ts +++ b/packages/angular/cli/src/commands/mcp/tools/modernize.ts @@ -29,12 +29,6 @@ const TRANSFORMATIONS: Array = [ 'Converts tags for elements with no content to be self-closing (e.g., `` becomes ``).', documentationUrl: 'https://angular.dev/reference/migrations/self-closing-tags', }, - { - name: 'test-bed-get', - description: - 'Updates `TestBed.get` to the preferred and type-safe `TestBed.inject` in TypeScript test files.', - documentationUrl: 'https://angular.dev/guide/testing/dependency-injection', - }, { name: 'inject', description: 'Converts usages of constructor-based injection to the inject() function.', @@ -70,11 +64,6 @@ const TRANSFORMATIONS: Array = [ '3. Run `ng g @angular/core:standalone` and select "Bootstrap the project using standalone APIs"', documentationUrl: 'https://angular.dev/reference/migrations/standalone', }, - { - name: 'zoneless', - description: 'Migrates the application to be zoneless.', - documentationUrl: 'https://angular.dev/guide/zoneless', - }, ]; const modernizeInputSchema = z.object({ diff --git a/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts b/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts index cc49dcba10b6..4c5e4cdacdcc 100644 --- a/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts +++ b/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts @@ -35,16 +35,16 @@ describe('Modernize Tool', () => { it('should return instructions for multiple transformations', async () => { const instructions = await getInstructions({ - transformations: ['self-closing-tags-migration', 'test-bed-get'], + transformations: ['self-closing-tags-migration', 'inject'], }); const expectedInstructions = [ 'To run the self-closing-tags-migration migration, execute the following command: ' + '`ng generate @angular/core:self-closing-tags-migration`.\nFor more information, ' + 'see https://angular.dev/reference/migrations/self-closing-tags.', - 'To run the test-bed-get migration, execute the following command: ' + - '`ng generate @angular/core:test-bed-get`.\nFor more information, ' + - 'see https://angular.dev/guide/testing/dependency-injection.', + 'To run the inject migration, execute the following command: ' + + '`ng generate @angular/core:inject`.\nFor more information, ' + + 'see https://angular.dev/reference/migrations/inject-function.', ]; expect(instructions?.sort()).toEqual(expectedInstructions.sort()); From dc948b137763b7e5d8e159597532e8a85a1e2f62 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 22 Aug 2025 15:05:48 +0000 Subject: [PATCH 13/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 6 +-- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 11 files changed, 65 insertions(+), 65 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 0bcd5cfd0c84..94582de287a0 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/setup-wsl@029d16b075db696b35d0d661d0fd3a0552a4b452 with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 98e655c2189f..f40bdadc2fdb 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/branch-manager@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4cc5fe9ba69..0480ac440928 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d85991daed54..a841c1bcf13b 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/pull-request-labeling@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/post-approval-changes@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index c8287f18d095..d106fd590899 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/feature-request@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index a1cc139e2f06..ca1179c74b02 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index fbce65ae5e19..5c35706910c8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/linting/licenses@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - 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 }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -159,13 +159,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -182,12 +182,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index dd0f0a7a0d0b..e9d1fe9024bf 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "9cc4fc69c644e345ce44169c7cd84e729c8d29bb", + commit = "029d16b075db696b35d0d661d0fd3a0552a4b452", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 7c2684041688..aaf671faf9ac 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "728fa6842f644227e282f7b8158ddfa67deeec5068ede098d72df6addbc2b5b6", + "@@//package.json": "8f8772821333c022f0cd86a9e5c74cdff0a7aee1dd74ced16ed0c0fec6d3c862", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -674,7 +674,7 @@ "@@rules_angular~//setup:extensions.bzl%rules_angular": { "general": { "bzlTransitiveDigest": "fkaH7HMicL3g7/NDaFzlq39kcLopMyQ3KdbDn+5CRzA=", - "usagesDigest": "4vjoXp94lW/cnp3G5Nbi6SdqHuFBsaA7m/u83of5HE8=", + "usagesDigest": "mthsJSuRvcThgmaeFEDgFmVR6HwM1CSMSOyLlJaCSI0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -700,7 +700,7 @@ "ruleClassName": "configurable_deps_repo", "attributes": { "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli", - "typescript": "@@rules_angular~//:node_modules/typescript-local" + "typescript": "@@rules_angular~//:node_modules/typescript" } } }, diff --git a/package.json b/package.json index 7fef0db5bdb1..e64373992a26 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6119e18f55c2..1f61c30f7e24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465} - version: 0.0.0-974f5f6e013469225b2716078fe0b09c66d81c99 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47} + version: 0.0.0-029d16b075db696b35d0d661d0fd3a0552a4b452 hasBin: true '@angular/platform-browser@20.2.1': @@ -9152,7 +9152,7 @@ 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/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) From e55ebf229312e09e2fb941786d9fb981a98777c2 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 22 Aug 2025 17:06:03 +0000 Subject: [PATCH 14/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 11 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 94582de287a0..d0a2b890a4ed 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/setup-wsl@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f40bdadc2fdb..57914e9f5b25 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/branch-manager@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0480ac440928..ca2e7cbbe961 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a841c1bcf13b..ec6a30535f04 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/pull-request-labeling@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/post-approval-changes@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index d106fd590899..7c23648757b1 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/feature-request@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ca1179c74b02..163d78aa79b9 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 5c35706910c8..b7c5cc8bdba8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/linting/licenses@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - 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 }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -159,13 +159,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -182,12 +182,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index e9d1fe9024bf..9ecf2dd251db 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "029d16b075db696b35d0d661d0fd3a0552a4b452", + commit = "cb03391a53dec7a1d7de8f3b2cd60935e82837fa", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index aaf671faf9ac..fe427948fd20 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "8f8772821333c022f0cd86a9e5c74cdff0a7aee1dd74ced16ed0c0fec6d3c862", + "@@//package.json": "406bdfc8263612d153a8873abbd33e848e42566e4aed75958f66186f3675f7d7", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index e64373992a26..58b8a917f2b7 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f61c30f7e24..dc3bc4e85da5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47} - version: 0.0.0-029d16b075db696b35d0d661d0fd3a0552a4b452 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35} + version: 0.0.0-cb03391a53dec7a1d7de8f3b2cd60935e82837fa hasBin: true '@angular/platform-browser@20.2.1': @@ -9152,7 +9152,7 @@ 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/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) From c5484b27b7f05d17acdd7202ab3ac734a7e371a6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 07:06:11 +0000 Subject: [PATCH 15/31] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 926 ++++++++++++++++++++++++++----------------------- 1 file changed, 491 insertions(+), 435 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc3bc4e85da5..7b609cbeb868 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,7 +111,7 @@ importers: version: 4.1.1 '@types/jasmine': specifier: ~5.1.0 - version: 5.1.8 + version: 5.1.9 '@types/jasmine-reporters': specifier: ^2 version: 2.5.3 @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.17.1 + version: 22.17.2 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.17.1)(rollup@4.46.2) + version: 0.5.3(@types/node@22.17.2)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.4.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.17.1)(typescript@5.9.2) + version: 10.9.2(@types/node@22.17.2)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.25.2 + version: 4.25.3 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: 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 + version: 4.25.3 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -1121,12 +1121,6 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.27.1': - resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} - engines: {node: '>=6.9.0'} - 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'} @@ -1156,12 +1150,6 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} @@ -1208,19 +1196,14 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.27.1': - resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} + '@babel/helper-wrap-function@7.28.3': + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} 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'} @@ -1611,10 +1594,6 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.0': - 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'} @@ -1639,8 +1618,8 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.4': @@ -1650,8 +1629,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.10': - resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 @@ -2182,8 +2161,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/checkbox@4.2.1': - resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==} + '@inquirer/checkbox@4.2.2': + resolution: {integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2200,8 +2179,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + '@inquirer/core@10.2.0': + resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2209,8 +2188,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.17': - resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==} + '@inquirer/editor@4.2.18': + resolution: {integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2218,8 +2197,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.17': - resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} + '@inquirer/expand@4.0.18': + resolution: {integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2240,8 +2219,8 @@ packages: resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/input@4.2.1': - resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} + '@inquirer/input@4.2.2': + resolution: {integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2249,8 +2228,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.17': - resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} + '@inquirer/number@3.0.18': + resolution: {integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2258,8 +2237,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.17': - resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} + '@inquirer/password@4.0.18': + resolution: {integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2285,8 +2264,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.5': - resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} + '@inquirer/rawlist@4.1.6': + resolution: {integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2294,8 +2273,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.0': - resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} + '@inquirer/search@3.1.1': + resolution: {integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2303,8 +2282,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.1': - resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} + '@inquirer/select@4.3.2': + resolution: {integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2381,14 +2360,14 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.10.0': - resolution: {integrity: sha512-PMOU9Sh0baiLZEDewwR/YAHJBV2D8pPIzcFQSU7HQl/k/HNCDyVfO1OvkyDwBGp4dPtvZc7Hl9FFYWwTP1CbZw==} + '@jsonjoy.com/json-pack@1.11.0': + resolution: {integrity: sha512-nLqSTAYwpk+5ZQIoVp7pfd/oSKNWlEdvTq2LzVA4r2wtWZg6v+5u0VgBOaDJuUfNOuw/4Ysq6glN5QKSrOCgrA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/json-pointer@1.0.1': - resolution: {integrity: sha512-tJpwQfuBuxqZlyoJOSZcqf7OUmiYQ6MiPNmOv4KbZdXE/DdvBSSAwhos0zIlJU/AXxC8XpuO8p08bh2fIl+RKA==} + '@jsonjoy.com/json-pointer@1.0.2': + resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -2478,108 +2457,114 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.39.5': - resolution: {integrity: sha512-B9nHSJYtsv79uo7QdkZ/b/WoKm20IkVSmTc/WCKarmDtFwM0dRx2ouEniqwNkzCSLn3fydzKmnMzjtfdOWt3VQ==} + '@mswjs/interceptors@0.39.6': + resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} engines: {node: '>=18'} - '@napi-rs/nice-android-arm-eabi@1.0.4': - resolution: {integrity: sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==} + '@napi-rs/nice-android-arm-eabi@1.1.1': + resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/nice-android-arm64@1.0.4': - resolution: {integrity: sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==} + '@napi-rs/nice-android-arm64@1.1.1': + resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/nice-darwin-arm64@1.0.4': - resolution: {integrity: sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==} + '@napi-rs/nice-darwin-arm64@1.1.1': + resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/nice-darwin-x64@1.0.4': - resolution: {integrity: sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==} + '@napi-rs/nice-darwin-x64@1.1.1': + resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/nice-freebsd-x64@1.0.4': - resolution: {integrity: sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==} + '@napi-rs/nice-freebsd-x64@1.1.1': + resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': - resolution: {integrity: sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==} + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/nice-linux-arm64-gnu@1.0.4': - resolution: {integrity: sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==} + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-arm64-musl@1.0.4': - resolution: {integrity: sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==} + '@napi-rs/nice-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-ppc64-gnu@1.0.4': - resolution: {integrity: sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==} + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] - '@napi-rs/nice-linux-riscv64-gnu@1.0.4': - resolution: {integrity: sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==} + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@napi-rs/nice-linux-s390x-gnu@1.0.4': - resolution: {integrity: sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==} + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] - '@napi-rs/nice-linux-x64-gnu@1.0.4': - resolution: {integrity: sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==} + '@napi-rs/nice-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-linux-x64-musl@1.0.4': - resolution: {integrity: sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==} + '@napi-rs/nice-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-win32-arm64-msvc@1.0.4': - resolution: {integrity: sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==} + '@napi-rs/nice-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [openharmony] + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/nice-win32-ia32-msvc@1.0.4': - resolution: {integrity: sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==} + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/nice-win32-x64-msvc@1.0.4': - resolution: {integrity: sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==} + '@napi-rs/nice-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/nice@1.0.4': - resolution: {integrity: sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==} + '@napi-rs/nice@1.1.1': + resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@1.0.3': @@ -2885,8 +2870,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.6': - resolution: {integrity: sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==} + '@puppeteer/browsers@2.10.7': + resolution: {integrity: sha512-wHWLkQWBjHtajZeqCB74nsa/X70KheyOhySYBRmVQDJiNj0zjZR/naPCvdWjMhcG1LmjaMV/9WtTo5mpe8qWLw==} engines: {node: '>=18'} hasBin: true @@ -3117,8 +3102,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.46.2': - resolution: {integrity: sha512-lZRiZl+B1R3VhqZgORtuUpc2YYbgIv+X6g3LgQHS5sjlf1ENiK1HZ6N5e8pEZ04nAWiwYM0JX7rP0eyxflkJRg==} + '@rollup/wasm-node@4.48.1': + resolution: {integrity: sha512-BGNxbwNHAwBj82DwDHc6Yia1bOs2NP1gvF181l7HYEUGfq8EoFkzr+S6sbuF2j5TXQHWbl/ev1g4kU7ZN4QSPw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3323,6 +3308,9 @@ packages: '@types/jasmine@5.1.8': resolution: {integrity: sha512-u7/CnvRdh6AaaIzYjCgUuVbREFgulhX05Qtf6ZtW+aOcjCKKVvKgpkPYJBFTZSHtFBYimzU4zP0V2vrEsq9Wcg==} + '@types/jasmine@5.1.9': + resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -3363,11 +3351,11 @@ packages: '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node-forge@1.3.13': - resolution: {integrity: sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==} + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.17.1': - resolution: {integrity: sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==} + '@types/node@22.17.2': + resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} '@types/node@24.2.0': resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} @@ -3518,6 +3506,12 @@ packages: peerDependencies: typescript: 5.9.2 + '@typescript-eslint/tsconfig-utils@8.40.0': + resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.9.2 + '@typescript-eslint/type-utils@8.39.1': resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3529,6 +3523,10 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.40.0': + resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.39.1': resolution: {integrity: sha512-EKkpcPuIux48dddVDXyQBlKdeTPMmALqBUbEk38McWv0qVEZwOpVJBi7ugK5qVNgeuYjGNQxrrnoM/5+TI/BPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3755,8 +3753,8 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} '@xtuc/ieee754@1.2.0': @@ -3879,8 +3877,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.0: + resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -4067,8 +4065,8 @@ packages: bare-events@2.6.1: resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.2.0: - resolution: {integrity: sha512-oRfrw7gwwBVAWx9S5zPMo2iiOjxyiZE12DmblmMQREgcogbNO0AFaZ+QBxxkEXiPspcpvO/Qtqn8LabUx4uYXg==} + bare-fs@4.2.1: + resolution: {integrity: sha512-mELROzV0IhqilFgsl1gyp48pnZsaV9xhQapHLDsvn4d4ZTfbFhcghQezl7FTEDNBcGqLUnNI3lUlm6ecrLWdFA==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4076,15 +4074,15 @@ packages: bare-buffer: optional: true - bare-os@3.6.1: - resolution: {integrity: sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==} + bare-os@3.6.2: + resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==} engines: {bare: '>=1.14.0'} bare-path@3.0.0: resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} - bare-stream@2.6.5: - resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + bare-stream@2.7.0: + resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} peerDependencies: bare-buffer: '*' bare-events: '*' @@ -4188,8 +4186,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.25.2: - resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} + browserslist@4.25.3: + resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4262,14 +4260,14 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001734: - resolution: {integrity: sha512-uhE1Ye5vgqju6OI71HTQqcBCZrvHugk0MjLak7Q+HfoBgoq5Bi+5YnwjP4fjDgrtYr/l8MVRBvzz9dPD4KyK0A==} + caniuse-lite@1.0.30001737: + resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - chai@5.2.1: - resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} engines: {node: '>=18'} chalk-template@0.4.0: @@ -4288,6 +4286,10 @@ packages: resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.0: + resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} @@ -4326,8 +4328,8 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - chromium-bidi@7.3.1: - resolution: {integrity: sha512-i+BMGluhZZc4Jic9L1aHJBTfaopxmCqQxGklyMcqFx4fvF3nI4BJ3bCe1ad474nvYRIo/ZN/VrdA4eOaRZua4Q==} + chromium-bidi@8.0.0: + resolution: {integrity: sha512-d1VmE0FD7lxZQHzcDUCKZSNRtRwISXDsdg4HjdTR5+Ll5nQ/vzU12JeNmupD6VWffrPSlrnGhEWlLESKH3VO+g==} peerDependencies: devtools-protocol: '*' @@ -4512,8 +4514,8 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.45.0: - resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} + core-js-compat@3.45.1: + resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -4856,8 +4858,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.200: - resolution: {integrity: sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==} + electron-to-chromium@1.5.208: + resolution: {integrity: sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -5133,8 +5135,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - eventsource-parser@3.0.3: - resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==} + eventsource-parser@3.0.5: + resolution: {integrity: sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==} engines: {node: '>=20.0.0'} eventsource@3.0.7: @@ -5221,8 +5223,9 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -5454,6 +5457,12 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regex.js@1.0.1: + resolution: {integrity: sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -6102,8 +6111,8 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} jackspeak@3.4.3: @@ -6460,8 +6469,8 @@ packages: long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - loupe@3.2.0: - resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lowdb@1.0.0: resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} @@ -6488,6 +6497,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.18: + resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6518,8 +6530,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.36.0: - resolution: {integrity: sha512-mfBfzGUdoEw5AZwG8E965ej3BbvW2F9LxEWj4uLxF6BEh1dO2N9eS3AGu9S6vfenuQYrVjsbUOOZK7y3vz4vyQ==} + memfs@4.38.1: + resolution: {integrity: sha512-exfrOkkU3m0EpbQ0iQJP93HUbkprnIBU7IUnobSNAzHkBUzsklLwENGLEm8ZwJmMuLoFEfv1pYQ54wSpkay4kQ==} engines: {node: '>= 4.0.0'} meow@12.1.1: @@ -6817,8 +6829,8 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@11.3.0: - resolution: {integrity: sha512-9J0+C+2nt3WFuui/mC46z2XCZ21/cKlFDuywULmseD/LlmnOrSeEAE4c/1jw6aybXLmpZnQY3/LmOJfgyHIcng==} + node-gyp@11.4.1: + resolution: {integrity: sha512-GiVxQ1e4TdZSSVmFDYUn6uUsrEUP68pa8C/xBzCfL/FcLHa4reWrxxTP7tRGhNdviYrNsL5kRolBL5LNYEutCw==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true @@ -7372,12 +7384,12 @@ packages: resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} engines: {node: '>= 8'} - proto3-json-serializer@3.0.1: - resolution: {integrity: sha512-Rug90pDIefARAG9MgaFjd0yR/YP4bN3Fov00kckXMjTZa0x86c4WoWfCQFdSeWi9DvRXjhfLlPDIvODB5LOTfg==} + proto3-json-serializer@3.0.2: + resolution: {integrity: sha512-AnMIfnoK2Ml3F/ZVl5PxcwIoefMxj4U/lomJ5/B2eIGdxw4UkbV1YamtsMQsEkZATdMCKMbnI1iG9RQaJbxBGw==} engines: {node: '>=18'} - protobufjs@7.5.3: - resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} protractor@7.0.0: @@ -7423,8 +7435,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.16.1: - resolution: {integrity: sha512-0dGD2kxoH9jqj/xiz4KZLcPKpqWygs+VSEBzvuVbU3KoT2cCw4HnMT9r/7NvYl1lIa+JCa5yIyRqi+4R3UyYfQ==} + puppeteer-core@24.17.0: + resolution: {integrity: sha512-RYOBKFiF+3RdwIZTEacqNpD567gaFcBAOKTT7742FdB1icXudrPI7BlZbYTYWK2wgGQUXt9Zi1Yn+D5PmCs4CA==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -8128,8 +8140,8 @@ packages: resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} engines: {node: '>=12.17'} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + tapable@2.2.3: + resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} engines: {node: '>=6'} tar-fs@2.1.1: @@ -8384,12 +8396,12 @@ packages: resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} engines: {node: '>=12.17'} - ua-parser-js@0.7.40: - resolution: {integrity: sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==} + ua-parser-js@0.7.41: + resolution: {integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==} hasBin: true - ua-parser-js@1.0.40: - resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} hasBin: true uglify-js@3.19.3: @@ -8592,6 +8604,46 @@ packages: yaml: optional: true + vite@7.1.3: + resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8953,8 +9005,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} zod-to-json-schema@3.24.6: @@ -9249,7 +9301,7 @@ snapshots: '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 @@ -9298,23 +9350,10 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.2 + browserslist: 4.25.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.3)': - dependencies: - '@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.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 @@ -9350,27 +9389,18 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 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 @@ -9390,8 +9420,8 @@ snapshots: dependencies: '@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 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9406,7 +9436,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -9421,10 +9451,10 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.27.1': + '@babel/helper-wrap-function@7.28.3': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -9434,10 +9464,6 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.2 - '@babel/parser@7.28.3': dependencies: '@babel/types': 7.28.2 @@ -9446,7 +9472,7 @@ snapshots: dependencies: '@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 @@ -9507,7 +9533,7 @@ snapshots: '@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.3) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9533,7 +9559,7 @@ snapshots: '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@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 @@ -9568,7 +9594,7 @@ snapshots: dependencies: '@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 @@ -9625,7 +9651,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9652,7 +9678,7 @@ snapshots: '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9660,7 +9686,7 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9668,17 +9694,17 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.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 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9711,7 +9737,7 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@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 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9744,7 +9770,7 @@ snapshots: '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@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 @@ -9753,7 +9779,7 @@ snapshots: dependencies: '@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.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 @@ -9913,7 +9939,7 @@ snapshots: 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 + core-js-compat: 3.45.1 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9933,18 +9959,6 @@ snapshots: '@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.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.1.0) - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.3': dependencies: '@babel/code-frame': 7.27.1 @@ -9972,16 +9986,16 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/color-helpers@5.0.2': {} + '@csstools/color-helpers@5.1.0': {} '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.2 + '@csstools/color-helpers': 5.1.0 '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -10523,12 +10537,12 @@ snapshots: extend: 3.0.2 google-auth-library: 10.2.1(supports-color@10.1.0) google-gax: 5.0.3(supports-color@10.1.0) - grpc-gcp: 1.0.1(protobufjs@7.5.3) + grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 merge-stream: 2.0.0 p-queue: 6.6.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 retry-request: 8.0.2(supports-color@10.1.0) split-array-stream: 2.0.0 stack-trace: 0.0.10 @@ -10558,20 +10572,20 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@grpc/proto-loader@0.7.15': dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 yargs: 17.7.2 '@grpc/proto-loader@0.8.0': dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 yargs: 17.7.2 '@hapi/bourne@3.0.0': {} @@ -10589,24 +10603,24 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.1(@types/node@24.2.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@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 + yoctocolors-cjs: 2.1.3 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) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/core@10.1.15(@types/node@24.2.0)': + '@inquirer/core@10.2.0(@types/node@24.2.0)': dependencies: '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) @@ -10615,23 +10629,23 @@ snapshots: mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/editor@4.2.17(@types/node@24.2.0)': + '@inquirer/editor@4.2.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@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)': + '@inquirer/expand@4.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 @@ -10644,23 +10658,23 @@ snapshots: '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.1(@types/node@24.2.0)': + '@inquirer/input@4.2.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/number@3.0.17(@types/node@24.2.0)': + '@inquirer/number@3.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/password@4.0.17(@types/node@24.2.0)': + '@inquirer/password@4.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) ansi-escapes: 4.3.2 optionalDependencies: @@ -10668,58 +10682,58 @@ snapshots: '@inquirer/prompts@7.8.0(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@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) - '@inquirer/password': 4.0.17(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) - '@inquirer/search': 3.1.0(@types/node@24.2.0) - '@inquirer/select': 4.3.1(@types/node@24.2.0) + '@inquirer/editor': 4.2.18(@types/node@24.2.0) + '@inquirer/expand': 4.0.18(@types/node@24.2.0) + '@inquirer/input': 4.2.2(@types/node@24.2.0) + '@inquirer/number': 3.0.18(@types/node@24.2.0) + '@inquirer/password': 4.0.18(@types/node@24.2.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) + '@inquirer/search': 3.1.1(@types/node@24.2.0) + '@inquirer/select': 4.3.2(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 '@inquirer/prompts@7.8.2(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@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) - '@inquirer/password': 4.0.17(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) - '@inquirer/search': 3.1.0(@types/node@24.2.0) - '@inquirer/select': 4.3.1(@types/node@24.2.0) + '@inquirer/editor': 4.2.18(@types/node@24.2.0) + '@inquirer/expand': 4.0.18(@types/node@24.2.0) + '@inquirer/input': 4.2.2(@types/node@24.2.0) + '@inquirer/number': 3.0.18(@types/node@24.2.0) + '@inquirer/password': 4.0.18(@types/node@24.2.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) + '@inquirer/search': 3.1.1(@types/node@24.2.0) + '@inquirer/select': 4.3.2(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/rawlist@4.1.5(@types/node@24.2.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/search@3.1.0(@types/node@24.2.0)': + '@inquirer/search@3.1.1(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/select@4.3.1(@types/node@24.2.0)': + '@inquirer/select@4.3.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@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 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 @@ -10786,19 +10800,20 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.10.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.11.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 1.0.1(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 2.5.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pointer@1.0.1(tslib@2.8.1)': + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': dependencies: + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) tslib: 2.8.1 @@ -10846,7 +10861,7 @@ snapshots: cors: 2.8.5 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.3 + eventsource-parser: 3.0.5 express: 5.1.0 express-rate-limit: 7.5.1(express@5.1.0) pkce-challenge: 5.0.0 @@ -10874,7 +10889,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.39.5': + '@mswjs/interceptors@0.39.6': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -10883,72 +10898,76 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/nice-android-arm-eabi@1.0.4': + '@napi-rs/nice-android-arm-eabi@1.1.1': optional: true - '@napi-rs/nice-android-arm64@1.0.4': + '@napi-rs/nice-android-arm64@1.1.1': optional: true - '@napi-rs/nice-darwin-arm64@1.0.4': + '@napi-rs/nice-darwin-arm64@1.1.1': optional: true - '@napi-rs/nice-darwin-x64@1.0.4': + '@napi-rs/nice-darwin-x64@1.1.1': optional: true - '@napi-rs/nice-freebsd-x64@1.0.4': + '@napi-rs/nice-freebsd-x64@1.1.1': optional: true - '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': optional: true - '@napi-rs/nice-linux-arm64-gnu@1.0.4': + '@napi-rs/nice-linux-arm64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-arm64-musl@1.0.4': + '@napi-rs/nice-linux-arm64-musl@1.1.1': optional: true - '@napi-rs/nice-linux-ppc64-gnu@1.0.4': + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-riscv64-gnu@1.0.4': + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-s390x-gnu@1.0.4': + '@napi-rs/nice-linux-s390x-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-x64-gnu@1.0.4': + '@napi-rs/nice-linux-x64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-x64-musl@1.0.4': + '@napi-rs/nice-linux-x64-musl@1.1.1': optional: true - '@napi-rs/nice-win32-arm64-msvc@1.0.4': + '@napi-rs/nice-openharmony-arm64@1.1.1': optional: true - '@napi-rs/nice-win32-ia32-msvc@1.0.4': + '@napi-rs/nice-win32-arm64-msvc@1.1.1': optional: true - '@napi-rs/nice-win32-x64-msvc@1.0.4': + '@napi-rs/nice-win32-ia32-msvc@1.1.1': optional: true - '@napi-rs/nice@1.0.4': + '@napi-rs/nice-win32-x64-msvc@1.1.1': + optional: true + + '@napi-rs/nice@1.1.1': optionalDependencies: - '@napi-rs/nice-android-arm-eabi': 1.0.4 - '@napi-rs/nice-android-arm64': 1.0.4 - '@napi-rs/nice-darwin-arm64': 1.0.4 - '@napi-rs/nice-darwin-x64': 1.0.4 - '@napi-rs/nice-freebsd-x64': 1.0.4 - '@napi-rs/nice-linux-arm-gnueabihf': 1.0.4 - '@napi-rs/nice-linux-arm64-gnu': 1.0.4 - '@napi-rs/nice-linux-arm64-musl': 1.0.4 - '@napi-rs/nice-linux-ppc64-gnu': 1.0.4 - '@napi-rs/nice-linux-riscv64-gnu': 1.0.4 - '@napi-rs/nice-linux-s390x-gnu': 1.0.4 - '@napi-rs/nice-linux-x64-gnu': 1.0.4 - '@napi-rs/nice-linux-x64-musl': 1.0.4 - '@napi-rs/nice-win32-arm64-msvc': 1.0.4 - '@napi-rs/nice-win32-ia32-msvc': 1.0.4 - '@napi-rs/nice-win32-x64-msvc': 1.0.4 + '@napi-rs/nice-android-arm-eabi': 1.1.1 + '@napi-rs/nice-android-arm64': 1.1.1 + '@napi-rs/nice-darwin-arm64': 1.1.1 + '@napi-rs/nice-darwin-x64': 1.1.1 + '@napi-rs/nice-freebsd-x64': 1.1.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 + '@napi-rs/nice-linux-arm64-gnu': 1.1.1 + '@napi-rs/nice-linux-arm64-musl': 1.1.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 + '@napi-rs/nice-linux-s390x-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-musl': 1.1.1 + '@napi-rs/nice-openharmony-arm64': 1.1.1 + '@napi-rs/nice-win32-arm64-msvc': 1.1.1 + '@napi-rs/nice-win32-ia32-msvc': 1.1.1 + '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true '@napi-rs/wasm-runtime@1.0.3': @@ -11023,7 +11042,7 @@ snapshots: '@npmcli/node-gyp': 4.0.0 '@npmcli/package-json': 6.2.0 '@npmcli/promise-spawn': 8.0.2 - node-gyp: 11.3.0 + node-gyp: 11.4.1 proc-log: 5.0.0 which: 5.0.0 transitivePeerDependencies: @@ -11272,7 +11291,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.6': + '@puppeteer/browsers@2.10.7': dependencies: debug: 4.4.1(supports-color@10.1.0) extract-zip: 2.0.1 @@ -11340,7 +11359,7 @@ snapshots: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.17 picomatch: 4.0.3 @@ -11441,7 +11460,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.46.2': + '@rollup/wasm-node@4.48.1': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11486,7 +11505,7 @@ snapshots: '@stylistic/eslint-plugin@5.2.3(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.40.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11519,13 +11538,13 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/babel__code-frame@7.0.6': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -11537,7 +11556,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@types/babel__traverse@7.28.0': @@ -11549,16 +11568,16 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/serve-static': 1.15.8 chokidar: 3.6.0 @@ -11568,11 +11587,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11580,17 +11599,17 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/connect@3.4.38': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/content-disposition@0.5.9': {} '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/convert-source-map@2.0.3': {} @@ -11599,11 +11618,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/cors@2.8.19': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/debounce@1.2.4': {} @@ -11611,7 +11630,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ejs@3.1.5': {} @@ -11631,14 +11650,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -11660,11 +11679,11 @@ snapshots: '@types/git-raw-commits@2.0.0': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/http-assert@1.5.6': {} @@ -11672,7 +11691,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ini@4.1.1': {} @@ -11688,17 +11707,19 @@ snapshots: '@types/jasmine-reporters@2.5.3': dependencies: - '@types/jasmine': 5.1.8 + '@types/jasmine': 5.1.9 '@types/jasmine@5.1.8': {} + '@types/jasmine@5.1.9': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} '@types/karma@6.3.9': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11718,13 +11739,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11741,14 +11762,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 form-data: 4.0.4 - '@types/node-forge@1.3.13': + '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 - '@types/node@22.17.1': + '@types/node@22.17.2': dependencies: undici-types: 6.21.0 @@ -11760,7 +11781,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11768,11 +11789,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11785,12 +11806,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/q@0.0.32': {} @@ -11811,7 +11832,7 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/serve-index@1.9.4': dependencies: @@ -11820,23 +11841,23 @@ snapshots: '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/stack-trace@0.0.33': {} @@ -11853,17 +11874,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11874,11 +11895,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ws@8.18.1': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/yargs-parser@21.0.3': {} @@ -11890,7 +11911,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -11924,8 +11945,8 @@ snapshots: '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) + '@typescript-eslint/types': 8.40.0 debug: 4.4.1(supports-color@10.1.0) typescript: 5.9.2 transitivePeerDependencies: @@ -11940,6 +11961,10 @@ snapshots: dependencies: typescript: 5.9.2 + '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.39.1 @@ -11954,6 +11979,8 @@ snapshots: '@typescript-eslint/types@8.39.1': {} + '@typescript-eslint/types@8.40.0': {} + '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: '@typescript-eslint/project-service': 8.39.1(typescript@5.9.2) @@ -12148,16 +12175,16 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.1 + chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12182,7 +12209,7 @@ snapshots: '@vitest/utils@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - loupe: 3.2.0 + loupe: 3.2.1 tinyrainbow: 2.0.0 '@web/browser-logs@0.4.1': @@ -12260,7 +12287,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.16.1(bufferutil@4.0.9) + puppeteer-core: 24.17.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12297,7 +12324,7 @@ snapshots: internal-ip: 6.2.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 log-update: 4.0.0 nanocolors: 0.2.13 nanoid: 3.3.11 @@ -12429,7 +12456,7 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@xmldom/xmldom@0.8.10': {} + '@xmldom/xmldom@0.8.11': {} '@xtuc/ieee754@1.2.0': {} @@ -12551,7 +12578,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.0: {} ansi-styles@2.2.1: {} @@ -12678,8 +12705,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.2 - caniuse-lite: 1.0.30001734 + browserslist: 4.25.3 + caniuse-lite: 1.0.30001737 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12715,7 +12742,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) - core-js-compat: 3.45.0 + core-js-compat: 3.45.1 transitivePeerDependencies: - supports-color @@ -12731,22 +12758,22 @@ snapshots: bare-events@2.6.1: optional: true - bare-fs@4.2.0: + bare-fs@4.2.1: dependencies: bare-events: 2.6.1 bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.6.1) + bare-stream: 2.7.0(bare-events@2.6.1) optional: true - bare-os@3.6.1: + bare-os@3.6.2: optional: true bare-path@3.0.0: dependencies: - bare-os: 3.6.1 + bare-os: 3.6.2 optional: true - bare-stream@2.6.5(bare-events@2.6.1): + bare-stream@2.7.0(bare-events@2.6.1): dependencies: streamx: 2.22.1 optionalDependencies: @@ -12901,7 +12928,7 @@ snapshots: serve-static: 1.16.2 server-destroy: 1.0.1 socket.io: 4.8.1(bufferutil@4.0.9) - ua-parser-js: 1.0.40 + ua-parser-js: 1.0.41 yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -12913,12 +12940,12 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.25.2: + browserslist@4.25.3: dependencies: - caniuse-lite: 1.0.30001734 - electron-to-chromium: 1.5.200 + caniuse-lite: 1.0.30001737 + electron-to-chromium: 1.5.208 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.2) + update-browserslist-db: 1.1.3(browserslist@4.25.3) browserstack@1.6.1: dependencies: @@ -12999,16 +13026,16 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001734: {} + caniuse-lite@1.0.30001737: {} caseless@0.12.0: {} - chai@5.2.1: + chai@5.3.3: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.2.0 + loupe: 3.2.1 pathval: 2.0.1 chalk-template@0.4.0: @@ -13030,6 +13057,8 @@ snapshots: chalk@5.5.0: {} + chalk@5.6.0: {} + chardet@2.1.0: {} check-error@2.1.1: {} @@ -13066,7 +13095,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13075,7 +13104,7 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@7.3.1(devtools-protocol@0.0.1475386): + chromium-bidi@8.0.0(devtools-protocol@0.0.1475386): dependencies: devtools-protocol: 0.0.1475386 mitt: 3.0.1 @@ -13275,9 +13304,9 @@ snapshots: tinyglobby: 0.2.14 webpack: 5.101.2(esbuild@0.25.9) - core-js-compat@3.45.0: + core-js-compat@3.45.1: dependencies: - browserslist: 4.25.2 + browserslist: 4.25.3 core-util-is@1.0.2: {} @@ -13589,7 +13618,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.200: {} + electron-to-chromium@1.5.208: {} emoji-regex@10.4.0: {} @@ -13628,7 +13657,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.17.1 + '@types/node': 22.17.2 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13644,7 +13673,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.2.3 ent@2.2.2: dependencies: @@ -13964,11 +13993,11 @@ snapshots: events@3.3.0: {} - eventsource-parser@3.0.3: {} + eventsource-parser@3.0.5: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.3 + eventsource-parser: 3.0.5 execa@5.1.1: dependencies: @@ -14110,7 +14139,7 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -14429,6 +14458,10 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regex.js@1.0.1(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + glob-to-regexp@0.4.1: {} glob@10.4.5: @@ -14519,8 +14552,8 @@ snapshots: google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 - proto3-json-serializer: 3.0.1 - protobufjs: 7.5.3 + proto3-json-serializer: 3.0.2 + protobufjs: 7.5.4 retry-request: 8.0.2(supports-color@10.1.0) transitivePeerDependencies: - supports-color @@ -14542,10 +14575,10 @@ snapshots: graphql@16.11.0: {} - grpc-gcp@1.0.1(protobufjs@7.5.3): + grpc-gcp@1.0.1(protobufjs@7.5.4): dependencies: '@grpc/grpc-js': 1.13.4 - protobufjs: 7.5.3 + protobufjs: 7.5.4 gtoken@7.1.0(encoding@0.1.13)(supports-color@10.1.0): dependencies: @@ -15076,7 +15109,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -15086,7 +15119,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -15107,7 +15140,7 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -15136,7 +15169,7 @@ snapshots: jasmine-reporters@2.5.2: dependencies: - '@xmldom/xmldom': 0.8.10 + '@xmldom/xmldom': 0.8.11 mkdirp: 1.0.4 jasmine-spec-reporter@7.0.0: @@ -15158,7 +15191,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15311,7 +15344,7 @@ snapshots: istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -15355,7 +15388,7 @@ snapshots: socket.io: 4.8.1(bufferutil@4.0.9) source-map: 0.6.1 tmp: 0.2.5 - ua-parser-js: 0.7.40 + ua-parser-js: 0.7.41 yargs: 16.2.0 transitivePeerDependencies: - bufferutil @@ -15554,7 +15587,7 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.5.0 + chalk: 5.6.0 is-unicode-supported: 1.3.0 log-update@4.0.0: @@ -15584,7 +15617,7 @@ snapshots: long@5.3.2: {} - loupe@3.2.0: {} + loupe@3.2.1: {} lowdb@1.0.0: dependencies: @@ -15610,6 +15643,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.18: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -15646,10 +15683,12 @@ snapshots: media-typer@1.1.0: {} - memfs@4.36.0: + memfs@4.38.1: dependencies: - '@jsonjoy.com/json-pack': 1.10.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + glob-to-regex.js: 1.0.1(tslib@2.8.1) + thingies: 2.5.0(tslib@2.8.1) tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 @@ -15695,7 +15734,7 @@ snapshots: 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 + tapable: 2.2.3 webpack: 5.101.2(esbuild@0.25.9) minimalistic-assert@1.0.1: {} @@ -15846,10 +15885,10 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) - '@rollup/wasm-node': 4.46.2 + '@rollup/wasm-node': 4.48.1 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.25.2 + browserslist: 4.25.3 chokidar: 4.0.3 commander: 14.0.0 dependency-graph: 1.0.0 @@ -15872,7 +15911,7 @@ snapshots: nock@14.0.8: dependencies: - '@mswjs/interceptors': 0.39.5 + '@mswjs/interceptors': 0.39.6 json-stringify-safe: 5.0.1 propagate: 2.0.1 @@ -15913,7 +15952,7 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@11.3.0: + node-gyp@11.4.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.2 @@ -16093,7 +16132,7 @@ snapshots: ora@8.2.0: dependencies: - chalk: 5.5.0 + chalk: 5.6.0 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -16326,7 +16365,7 @@ snapshots: piscina@5.1.3: optionalDependencies: - '@napi-rs/nice': 1.0.4 + '@napi-rs/nice': 1.1.1 pkce-challenge@5.0.0: {} @@ -16422,11 +16461,11 @@ snapshots: propagate@2.0.1: {} - proto3-json-serializer@3.0.1: + proto3-json-serializer@3.0.2: dependencies: - protobufjs: 7.5.3 + protobufjs: 7.5.4 - protobufjs@7.5.3: + protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -16438,7 +16477,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.17.1 + '@types/node': 22.17.2 long: 5.3.2 protractor@7.0.0: @@ -16526,10 +16565,10 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.16.1(bufferutil@4.0.9): + puppeteer-core@24.17.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.6 - chromium-bidi: 7.3.1(devtools-protocol@0.0.1475386) + '@puppeteer/browsers': 2.10.7 + chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) debug: 4.4.1(supports-color@10.1.0) devtools-protocol: 0.0.1475386 typed-query-selector: 2.12.0 @@ -16822,12 +16861,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.17.1)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.17.2)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 rollup@4.46.2: dependencies: @@ -16951,7 +16990,7 @@ snapshots: selfsigned@2.4.1: dependencies: - '@types/node-forge': 1.3.13 + '@types/node-forge': 1.3.14 node-forge: 1.3.1 semver@5.7.2: {} @@ -17433,7 +17472,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.0 strip-bom@3.0.0: {} @@ -17468,7 +17507,7 @@ snapshots: array-back: 6.2.2 wordwrapjs: 5.1.0 - tapable@2.2.2: {} + tapable@2.2.3: {} tar-fs@2.1.1: dependencies: @@ -17482,7 +17521,7 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.2.0 + bare-fs: 4.2.1 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -17581,7 +17620,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 tinypool@1.1.1: {} @@ -17635,14 +17674,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.17.1)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.17.2)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.17.1 + '@types/node': 22.17.2 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17744,9 +17783,9 @@ snapshots: typical@7.3.0: {} - ua-parser-js@0.7.40: {} + ua-parser-js@0.7.41: {} - ua-parser-js@1.0.40: {} + ua-parser-js@1.0.41: {} uglify-js@3.19.3: optional: true @@ -17820,9 +17859,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.2): + update-browserslist-db@1.1.3(browserslist@4.25.3): dependencies: - browserslist: 4.25.2 + browserslist: 4.25.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -17963,7 +18002,24 @@ snapshots: vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: esbuild: 0.25.9 - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 24.2.0 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.4.0 + sass: 1.90.0 + terser: 5.43.1 + yaml: 2.8.1 + + vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + dependencies: + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.46.2 @@ -17981,16 +18037,16 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.1 + chai: 5.3.3 debug: 4.4.1(supports-color@10.1.0) expect-type: 1.2.2 - magic-string: 0.30.17 + magic-string: 0.30.18 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 @@ -17999,7 +18055,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: @@ -18067,7 +18123,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.36.0 + memfs: 4.38.1 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18136,7 +18192,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.25.2 + browserslist: 4.25.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -18149,7 +18205,7 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.2 + tapable: 2.2.3 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 @@ -18391,7 +18447,7 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: From 2e92159e5719442c2ffa021e7b3ae7a78ef591b7 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 24 Aug 2025 22:05:16 +0000 Subject: [PATCH 16/31] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 9ecf2dd251db..0c757b704f2b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( 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_js", version = "2.5.0") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") @@ -25,7 +25,7 @@ single_version_override( version = "1.5.3", ) -bazel_dep(name = "aspect_bazel_lib", version = "2.21.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.21.1") 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") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fe427948fd20..0ac4edfcd3be 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,8 +15,8 @@ "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.21.0/MODULE.bazel": "2fbd1f58ccbbe28749a248bdadea068a6db27eda8be45f8d60668f48e4025437", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/source.json": "9ce346023624f8d3b58d31d3ef1bf773f85495187386f6de63fd8aaef744c63e", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/source.json": "cb7d22ce044efa47c6e251107a35b8a919f5cd35254190d825adff1b7ae21e6e", "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", @@ -26,13 +26,15 @@ "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_js/2.5.0/MODULE.bazel": "12bb9ffdfda5b952644ffa75a69fac1e63da788ad445b056d3ccc70ad39825ac", + "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/source.json": "884ab90109fb7b92488d8187dfd8e0b93be105d2e42b06d887ab4730ba7d77da", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/MODULE.bazel": "20f53b145f40957a51077ae90b37b7ce83582a1daf9350349f0f86179e19dd0d", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/source.json": "4d98137d5f74f01e00c6efa8bf591c02718e6c5f31f0bcc73983ea514dd02a12", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "aa975a83e72bcaac62ee61ab12b788ea324a1d05c4aab28aadb202f647881679", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/source.json": "786cbc49377fb6bf4859aec5b1c61f8fc26b08e9fdb929e2dde2e1e2a406bd24", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", @@ -212,7 +214,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "sSVcgtXWHd7osgq50rEZWY2HUmSuNU72/SbhIh5PKsw=", + "bzlTransitiveDigest": "AoqXkS5sPN0j91OWhXohJuxSeCzWZ5ho8DKwAovSGbY=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -357,6 +359,11 @@ "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_skylib", @@ -387,8 +394,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "aU6dw0RbQaePWr28SJnbI5vd1VoLqJ8DBaheoenhjJ4=", - "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=", + "bzlTransitiveDigest": "bIC8bbQ6eGIpZ/GzkjwoRG18F9dfuNaGunAeuUF0Rg0=", + "usagesDigest": "3AzTJAfe5XVpVUGzpKn2Vey5gSL41A/RWrCJh1bJhHQ=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -603,8 +610,8 @@ }, "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { - "bzlTransitiveDigest": "9U/UW6moiJI22q2ERFWJSK1omQJqmQgMYfWCWNL+SXk=", - "usagesDigest": "6/bgMygODvT9WjYi5vm4e/BEkvhIDHgwWRIhAQhvKts=", + "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", + "usagesDigest": "nut5sNZyApCgI/gzif8dERYFw/f5M+qEHBu7l/fx+qI=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -614,9 +621,9 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.4.2", + "aspect_rules_js": "2.5.0", "aspect_rules_ts": "3.7.0", - "aspect_tools_telemetry": "0.2.6" + "aspect_tools_telemetry": "0.2.8" } } } @@ -1117,7 +1124,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", - "usagesDigest": "BWjTwEVnU6V086ModOVKQp27nvlXPOHb9QWSETnrgR8=", + "usagesDigest": "mjOvYBICjfKKLbI6pc2MjfgO8uk6mk/EuI7ORlwWUGo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 30713178798fb0668c23773f39c8004d85118a33 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 09:49:19 +0000 Subject: [PATCH 17/31] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 90 +++++--------------------------------------------- 1 file changed, 8 insertions(+), 82 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b609cbeb868..5ce936afbc54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3506,12 +3506,6 @@ packages: peerDependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.40.0': - resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.1': resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6497,9 +6491,6 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -8604,46 +8595,6 @@ packages: yaml: optional: true - vite@7.1.3: - resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -11945,8 +11896,8 @@ snapshots: '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) + '@typescript-eslint/types': 8.39.1 debug: 4.4.1(supports-color@10.1.0) typescript: 5.9.2 transitivePeerDependencies: @@ -11961,10 +11912,6 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': - dependencies: - typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.39.1 @@ -12178,13 +12125,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14095,7 +14042,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15643,10 +15590,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.18: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -18016,28 +17959,11 @@ snapshots: terser: 5.43.1 yaml: 2.8.1 - vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.46.2 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.2.0 - fsevents: 2.3.3 - jiti: 1.21.7 - less: 4.4.0 - sass: 1.90.0 - terser: 5.43.1 - yaml: 2.8.1 - vitest@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18046,7 +17972,7 @@ snapshots: chai: 5.3.3 debug: 4.4.1(supports-color@10.1.0) expect-type: 1.2.2 - magic-string: 0.30.18 + magic-string: 0.30.17 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 @@ -18055,7 +17981,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: From 5179d8031fe868640e343f60a318ea7dd95243a9 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 15:49:17 +0000 Subject: [PATCH 18/31] ci: Disable PNPM cache on Windows Disabling the PNPM cache resolves an issue where pnpm install is being run inside WSL, causing the action to fail due to missing path. See: https://github.com/angular/dev-infra/pull/2998 --- .github/workflows/ci.yml | 2 ++ .github/workflows/pr.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca2e7cbbe961..101b15b387b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,6 +111,8 @@ jobs: steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + with: + disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b7c5cc8bdba8..ad67c020d27d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -133,6 +133,8 @@ jobs: steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + with: + disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE From 9a626fd2cc3e5159bcd3dcd9d22ab4348e25a29f Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 16:20:01 +0000 Subject: [PATCH 19/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 16 +++--- package.json | 2 +- pnpm-lock.yaml | 14 +++--- 11 files changed, 72 insertions(+), 70 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index d0a2b890a4ed..31647f3c63ce 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/setup-wsl@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 57914e9f5b25..303a3814540d 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/branch-manager@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 101b15b387b8..6689c8bbb43c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,13 +110,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -140,13 +140,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -165,13 +165,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -185,13 +185,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -221,11 +221,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index ec6a30535f04..d9d3b64757e9 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/pull-request-labeling@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/post-approval-changes@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 7c23648757b1..848b760315b3 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/feature-request@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 163d78aa79b9..ecd35bb70566 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ad67c020d27d..8de9b3ce3d13 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/linting/licenses@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - 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 }} @@ -132,13 +132,13 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -161,13 +161,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -184,12 +184,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 0c757b704f2b..08b19fd3a590 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "cb03391a53dec7a1d7de8f3b2cd60935e82837fa", + commit = "1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 0ac4edfcd3be..e9ea240ae83a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -41,7 +41,8 @@ "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.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/source.json": "dfa5c4b01110313153b484a735764d247fee5624bbab63d25289e43b151a657a", "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", @@ -171,7 +172,8 @@ "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/tar.bzl/0.5.5/MODULE.bazel": "4bfab9bbc7a1966c2c5f7371f5848f5e2d27c465951b4435adc9aaf00ed681da", + "https://bcr.bazel.build/modules/tar.bzl/0.5.5/source.json": "67c322bd9f9a6714b9d55d4df36ddc222976a7fbb2070410ef036f68cdf2eeb7", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", @@ -214,7 +216,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "AoqXkS5sPN0j91OWhXohJuxSeCzWZ5ho8DKwAovSGbY=", + "bzlTransitiveDigest": "D8qNgGrrdZct3S3KMxl6kgSKedwrEWvW34y5AVoV4PQ=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -394,7 +396,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "bIC8bbQ6eGIpZ/GzkjwoRG18F9dfuNaGunAeuUF0Rg0=", + "bzlTransitiveDigest": "0Kn7fvnVxLaVWd5Q+UPHLEIH0A8dYAnRoL8iW6cFIJI=", "usagesDigest": "3AzTJAfe5XVpVUGzpKn2Vey5gSL41A/RWrCJh1bJhHQ=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -534,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "406bdfc8263612d153a8873abbd33e848e42566e4aed75958f66186f3675f7d7", + "@@//package.json": "2f289317adaa135b323d670b0c447d9fade82b3c7e8d289bc1452dd774615a5e", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -2333,8 +2335,8 @@ }, "@@tar.bzl~//tar:extensions.bzl%toolchains": { "general": { - "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", - "usagesDigest": "I6HvqeURBJAsVftolZUnMjAJqsIpyPsnCw4Sngx2dSg=", + "bzlTransitiveDigest": "x8T4avQwaccwFRDkBObSMray93ZBHwpcjsZTPQOyII0=", + "usagesDigest": "aQJiuhjXhigIjDvDZxsHPfosrrHvNBHV55yj8QdZQgs=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/package.json b/package.json index 58b8a917f2b7..837bf753943c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ce936afbc54..73f92ea63455 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35} - version: 0.0.0-cb03391a53dec7a1d7de8f3b2cd60935e82837fa + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a} + version: 0.0.0-1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d hasBin: true '@angular/platform-browser@20.2.1': @@ -9155,7 +9155,7 @@ 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/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -14042,7 +14042,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.1(supports-color@10.1.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: From 5c76d4cfc5b97312713740a6d02c6f980ee27c32 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Mon, 25 Aug 2025 17:12:28 +0000 Subject: [PATCH 20/31] build: enable strict deps enforcement for ts_project Enable strict_deps testings for all ts_project targets in the repo (cherry picked from commit 8a512cc1e38754c37af8023f2845d1ade6fe0782) --- BUILD.bazel | 14 +++++++++++--- MODULE.bazel | 2 +- packages/angular/ssr/node/BUILD.bazel | 2 -- .../github.com/Microsoft/TypeScript/BUILD.bazel | 10 ++++++---- tools/defaults.bzl | 13 ++++++------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 9518c3a6f0bb..8a65a2d96d22 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -18,11 +18,19 @@ exports_files([ npm_link_all_packages() +rules_js_tsconfig( + name = "tsconfig", + src = "tsconfig.json", + visibility = [ + "//:__pkg__", + ], +) + rules_js_tsconfig( name = "build-tsconfig", src = "tsconfig-build.json", deps = [ - "tsconfig.json", + ":tsconfig", "//:node_modules/@types/node", ], ) @@ -31,7 +39,7 @@ rules_js_tsconfig( name = "test-tsconfig", src = "tsconfig-test.json", deps = [ - "tsconfig.json", + ":tsconfig", "//:node_modules/@types/jasmine", "//:node_modules/@types/node", ], @@ -41,7 +49,7 @@ rules_js_tsconfig( name = "build-tsconfig-esm", src = "tsconfig-build-esm.json", deps = [ - "tsconfig.json", + ":tsconfig", ], ) diff --git a/MODULE.bazel b/MODULE.bazel index 08b19fd3a590..df2bb6d07afd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d", + commit = "acce054082b688da9a5a3d12c6550184eb9f7725", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/packages/angular/ssr/node/BUILD.bazel b/packages/angular/ssr/node/BUILD.bazel index cde993d9c26a..ddd737512f67 100644 --- a/packages/angular/ssr/node/BUILD.bazel +++ b/packages/angular/ssr/node/BUILD.bazel @@ -14,8 +14,6 @@ ts_project( "--types", "node", ], - # TODO: Fix strict_deps failure - ignore_strict_deps = True, source_map = True, tsconfig = "//:build-tsconfig-esm", deps = [ diff --git a/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel b/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel index 6db2a372db4e..b4ac5f975b5a 100644 --- a/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel +++ b/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ts_project") +load("@aspect_rules_js//js:defs.bzl", "js_library") # files fetched on 2025-08-01 @@ -14,8 +14,10 @@ exports_files([ "LICENSE", ]) -ts_project( +js_library( name = "TypeScript", - srcs = ["lib/typescript.d.ts"], - data = ["lib/typescript.js"], + srcs = [ + "lib/typescript.d.ts", + "lib/typescript.js", + ], ) diff --git a/tools/defaults.bzl b/tools/defaults.bzl index cde6f8c43dd6..dc99b2b24e56 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -13,7 +13,6 @@ def ts_project( tsconfig = None, testonly = False, visibility = None, - ignore_strict_deps = False, **kwargs): if tsconfig == None: tsconfig = "//:test-tsconfig" if testonly else "//:build-tsconfig" @@ -28,12 +27,12 @@ def ts_project( **kwargs ) - if not ignore_strict_deps: - strict_deps_test( - name = "%s_strict_deps_test" % name, - srcs = kwargs.get("srcs", []), - deps = deps, - ) + strict_deps_test( + name = "%s_strict_deps_test" % name, + srcs = kwargs.get("srcs", []), + tsconfig = tsconfig, + deps = deps, + ) def npm_package(**kwargs): _npm_package(**kwargs) From ecc0198c226bc523e76a9c969628b319bbbca34f Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 26 Aug 2025 12:44:14 +0000 Subject: [PATCH 21/31] ci: removing WSL for a simpler, more performant approach We've been using a complex workflow with WSL to run our E2E tests on CI. This method, which involves building on Linux and running on Windows, has led to several issues, including: - A complex and cumbersome setup. - Performance overhead due to cross-OS file operations. - Flakiness caused by symlink conversion problems. This change overhauls the E2E test workflow to a much simpler and more stable two-step process: building natively on Linux and running natively on Windows. This new approach significantly simplifies our CI setup by eliminating the dev-infra wsl action and the tricky symlink conversions, leading to better performance and fewer test flakes. (cherry picked from commit d2edcb43b722207f637b764816f02943a78a7ad1) --- .../windows-bazel-test/action.yml | 86 +++-------- .github/workflows/ci.yml | 49 ++++-- .github/workflows/pr.yml | 44 ++++-- scripts/windows-testing/convert-symlinks.mjs | 143 ------------------ 4 files changed, 98 insertions(+), 224 deletions(-) delete mode 100644 scripts/windows-testing/convert-symlinks.mjs diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 31647f3c63ce..29c58eb10167 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -1,10 +1,10 @@ -name: 'Native Windows Bazel e2e test' -description: 'Runs an Angular CLI e2e Bazel test on native Windows (dispatched from inside WSL)' -author: 'Angular' +name: Native Windows Bazel E2E test +description: Runs an Angular CLI e2e Bazel test on native Windows +author: Angular inputs: test_target_name: - description: E2E test target name + description: E2E test target name. required: true test_args: description: | @@ -12,76 +12,38 @@ inputs: should be passed to the e2e test runner. required: false default: '' + e2e_temp_dir: + description: 'The temporary directory path for E2E tests.' + required: false + # Use D:\\ by default as it's much faster + # See: https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows + default: 'D:\\tmp_dir' runs: - using: composite + using: 'composite' steps: - - name: Initialize WSL - id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' - - - 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} - - - 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 - env: - # See: https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows - WSLENV: 'GOOGLE_APPLICATION_CREDENTIALS/p' - - - name: Copying binary artifact to host - shell: wsl-bash {0} + - name: Set up temp directory + shell: bash run: | - cd ${{steps.init_wsl.outputs.repo_path}} - tar -cf /tmp/test.tar.gz dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_ - # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 - mkdir /mnt/d/test - mkdir /mnt/d/tmp_dir - mv /tmp/test.tar.gz /mnt/d/test - (cd /mnt/d/test && tar -xf /mnt/d/test/test.tar.gz) + mkdir ${{ inputs.e2e_temp_dir }} - name: Convert symlinks for Windows host - shell: wsl-bash {0} + shell: pwsh 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/d/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" - - # Make WSL symlinks compatible on Windows native file system. - node scripts/windows-testing/convert-symlinks.mjs $runfiles_dir "${{steps.init_wsl.outputs.cmd_path}}" + $runfiles_dir = "./dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" # Needed for resolution because Aspect/Bazel looks for repositories at `/external`. # TODO(devversion): consult with Aspect on why this is needed. - (cd $runfiles_dir/_main && ${{steps.init_wsl.outputs.cmd_path}} /C "mklink /D external ..") + Set-Location -Path "${runfiles_dir}\_main" + New-Item -ItemType SymbolicLink -Path "external" -Target ".." - - name: Run tests - # Note: This is Git Bash. + - name: Run CLI E2E tests shell: bash env: BAZEL_BINDIR: '.' - # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 - E2E_TEMP: 'D:\\tmp_dir' - working-directory: "D:\\test" + E2E_TEMP: ${{ inputs.e2e_temp_dir }} run: | - node "${{github.workspace}}\\scripts\\windows-testing\\parallel-executor.mjs" \ - $PWD/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles \ - ${{inputs.test_target_name}} \ - "${{inputs.test_args}}" \ + node ./scripts/windows-testing/parallel-executor.mjs \ + "./dist/bin/tests/legacy-cli/${{ inputs.test_target_name }}_/${{ inputs.test_target_name }}.bat.runfiles" \ + ${{ inputs.test_target_name }} \ + "${{ inputs.test_args }}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6689c8bbb43c..6ed359fc5d83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,7 +99,38 @@ 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 }} - e2e_windows: + build-e2e-windows: + runs-on: ubuntu-latest + steps: + - name: Initialize environment + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Setup Bazel + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Setup Bazel RBE + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Build E2E tests for Windows on Linux + run: | + pnpm bazel build \ + --config=e2e \ + //tests/legacy-cli:e2e.npm_node22 \ + //tests/legacy-cli:e2e.esbuild_node22 \ + --platforms=tools:windows_x64 + - name: Store built Windows E2E tests + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: win-e2e-build-artifacts + path: | + dist/bin/tests/legacy-cli/** + !**/node_modules/** + retention-days: 1 + if-no-files-found: 'error' + + e2e-windows: + needs: build-e2e-windows strategy: fail-fast: false matrix: @@ -110,16 +141,14 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - disable-package-manager-cache: true - - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Download built Windows E2E tests + uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 with: - allow_windows_rbe: true - google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} + name: win-e2e-build-artifacts + path: dist/bin/tests/legacy-cli/ - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test with: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8de9b3ce3d13..27224d6f238f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -127,27 +127,53 @@ 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 }} - e2e-windows-subset: - needs: build - runs-on: windows-2025 + build-e2e-windows-subset: + runs-on: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Build E2E tests for Windows on Linux + run: | + pnpm bazel build \ + --config=e2e \ + //tests/legacy-cli:e2e.esbuild_node22 \ + --platforms=tools:windows_x64 + - name: Store built Windows E2E tests + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: win-e2e-build-artifacts + path: | + dist/bin/tests/legacy-cli/** + !**/node_modules/** + retention-days: 1 + if-no-files-found: 'error' + + e2e-windows-subset: + needs: build-e2e-windows-subset + runs-on: windows-2025 + steps: + - name: Initialize environment + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Download built Windows E2E tests + uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 with: - allow_windows_rbe: true + name: win-e2e-build-artifacts + path: dist/bin/tests/legacy-cli/ - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test + with: + test_target_name: e2e.esbuild_node22 + test_args: --glob "tests/basic/{build,rebuild}.ts" env: E2E_SHARD_TOTAL: 1 - with: - test_target_name: e2e_node22 - test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" e2e-package-managers: needs: build diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs deleted file mode 100644 index f07bbaaeb481..000000000000 --- a/scripts/windows-testing/convert-symlinks.mjs +++ /dev/null @@ -1,143 +0,0 @@ -/** - * @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 - * tests via Bazel inside WSL; the output cannot simply be used outside WSL to perform - * native Windows testing. This is a known limitation/bug of the WSL <> Windows interop. - * - * Symlinks are commonly used by Bazel inside the `.runfiles` directory, which is relevant - * for executing tests outside Bazel on the host machine. In addition, `rules_js` heavily - * relies on symlinks for node modules. - * - * Some more details in: - * - https://blog.trailofbits.com/2024/02/12/why-windows-cant-follow-wsl-symlinks/. - * - https://pnpm.io/symlinked-node-modules-structure. - */ - -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); - -const skipDirectories = [ - // Modules that we don't need and would unnecessarily slow-down this. - '_windows_amd64/bin/nodejs/node_modules', -]; - -// Dereferencing can be parallelized and doesn't cause any WSL flakiness (no exe is invoked). -const dereferenceFns = []; -// Re-linking can be parallelized, but should only be in batched. WSL exe is involved and it can be flaky. -// Note: Relinking should not happen during removing & copying of dereference tasks. -const relinkFns = []; - -async function transformDir(p) { - // We explore directories after all files were checked at this level. - const directoriesToVisit = []; - - for (const file of await fs.readdir(p, { withFileTypes: true })) { - const subPath = path.join(p, file.name); - if (skipDirectories.some((d) => subPath.endsWith(d))) { - continue; - } - - if (file.isSymbolicLink()) { - let realTarget = ''; - let linkTarget = ''; - - try { - realTarget = await fs.realpath(subPath); - linkTarget = await fs.readlink(subPath); - } catch (e) { - throw new Error(`Skipping; cannot dereference & read link: ${subPath}: ${e}`); - } - - // Transform relative links but preserve them. - // This is needed for pnpm. - if (!path.isAbsolute(linkTarget)) { - relinkFns.push(async () => { - const wslSubPath = path.relative(rootDir, subPath).replace(/\//g, '\\'); - const linkTargetWindowsPath = linkTarget.replace(/\//g, '\\'); - - await fs.unlink(subPath); - - if ((await fs.stat(realTarget)).isDirectory()) { - // This is a symlink to a directory, create a dir junction. - // Re-create this symlink on the Windows FS using the Windows mklink command. - await exec(`${cmdPath} /c mklink /d "${wslSubPath}" "${linkTargetWindowsPath}"`); - } else { - // This is a symlink to a file, create a file junction. - // Re-create this symlink on the Windows FS using the Windows mklink command. - await exec(`${cmdPath} /c mklink "${wslSubPath}" "${linkTargetWindowsPath}"`); - } - }); - } else { - dereferenceFns.push(async () => { - await fs.unlink(subPath); - // Note: NodeJS `fs.cp` can have issues when sources are readonly. - await exec(`cp -R ${realTarget} ${subPath}`); - }); - } - } else if (file.isDirectory()) { - directoriesToVisit.push(subPath); - } - } - - await Promise.all(directoriesToVisit.map((d) => transformDir(d))); -} - -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 { - throw error; - } - } - } -} - -try { - await transformDir(rootDir); - - // Dereference first. - await Promise.all(dereferenceFns.map((fn) => fn())); - - // 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 = 50; - for (let i = 0; i < relinkFns.length; i += batchSize) { - await Promise.all(relinkFns.slice(i, i + batchSize).map((fn) => fn())); - } -} catch (err) { - console.error('Could not convert symlinks:', err); - process.exitCode = 1; -} From 5d6dd44259a0d89098c2a0c784e726b43ce32316 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:10:30 +0000 Subject: [PATCH 22/31] fix(@schematics/angular): prevent AI config schematic from failing when 'none' and other AI tools are selected When using 'ng new' with the interactive AI tool prompt, the 'none' option remains selected even after a user selects another tool. This results in a validation error because the schematic receives an array with both 'none' and the selected tool. This fix filters out the 'none' value from the `tool` option if any other tool is also present, allowing the schematic to proceed. Closes: #30987 (cherry picked from commit 0f86cf8782d1c08d11bb9ee54a30fe1954dd8bcc) --- .../transformers/replace_resources_spec.ts | 2 +- .../schematics/angular/ai-config/index.ts | 37 +++++++++---------- .../angular/ai-config/index_spec.ts | 9 +++-- .../schematics/angular/ai-config/schema.json | 18 +-------- .../schematics/angular/ng-new/index_spec.ts | 2 +- 5 files changed, 25 insertions(+), 43 deletions(-) diff --git a/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts b/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts index e4c905f86430..102d6e1e0879 100644 --- a/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts +++ b/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts @@ -105,7 +105,7 @@ describe('@ngtools/webpack transformers', () => { expect(tags.oneLine`${result}`).toEqual(tags.oneLine`${output}`); }); - it('should should support svg as templates', () => { + it('should support svg as templates', () => { const input = tags.stripIndent` import { Component } from '@angular/core'; diff --git a/packages/schematics/angular/ai-config/index.ts b/packages/schematics/angular/ai-config/index.ts index 6790bc4a1c1d..4d234b35e5d4 100644 --- a/packages/schematics/angular/ai-config/index.ts +++ b/packages/schematics/angular/ai-config/index.ts @@ -19,9 +19,7 @@ import { } from '@angular-devkit/schematics'; import { Schema as ConfigOptions, Tool } from './schema'; -type ToolWithoutNone = Exclude; - -const AI_TOOLS: { [key in ToolWithoutNone]: ContextFileInfo } = { +const AI_TOOLS: { [key in Exclude]: ContextFileInfo } = { gemini: { rulesName: 'GEMINI.md', directory: '.gemini', @@ -57,26 +55,25 @@ interface ContextFileInfo { } export default function ({ tool }: ConfigOptions): Rule { - if (!tool || tool.includes(Tool.None)) { + if (!tool) { return noop(); } - const files: ContextFileInfo[] = (tool as ToolWithoutNone[]).map( - (selectedTool) => AI_TOOLS[selectedTool], - ); - - const rules = files.map(({ rulesName, directory, frontmatter }) => - mergeWith( - apply(url('./files'), [ - applyTemplates({ - ...strings, - rulesName, - frontmatter, - }), - move(directory), - ]), - ), - ); + const rules = tool + .filter((tool) => tool !== Tool.None) + .map((selectedTool) => AI_TOOLS[selectedTool]) + .map(({ rulesName, directory, frontmatter }) => + mergeWith( + apply(url('./files'), [ + applyTemplates({ + ...strings, + rulesName, + frontmatter, + }), + move(directory), + ]), + ), + ); return chain(rules); } diff --git a/packages/schematics/angular/ai-config/index_spec.ts b/packages/schematics/angular/ai-config/index_spec.ts index 45518f7d17d6..d21186be408a 100644 --- a/packages/schematics/angular/ai-config/index_spec.ts +++ b/packages/schematics/angular/ai-config/index_spec.ts @@ -72,13 +72,14 @@ describe('Ai Config Schematic', () => { expect(tree.exists('.cursor/rules/cursor.mdc')).toBeTruthy(); }); - it('should error is None is associated with other values', () => { - return expectAsync(runConfigSchematic([ConfigTool.None, ConfigTool.Cursor])).toBeRejected(); - }); - it('should not create any files if None is selected', async () => { const filesCount = workspaceTree.files.length; const tree = await runConfigSchematic([ConfigTool.None]); expect(tree.files.length).toBe(filesCount); }); + + it('should create for tool if None and Gemini are selected', async () => { + const tree = await runConfigSchematic([ConfigTool.Gemini, ConfigTool.None]); + expect(tree.exists('.gemini/GEMINI.md')).toBeTruthy(); + }); }); diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json index 8595f9f7c558..3f46fbc6dede 100644 --- a/packages/schematics/angular/ai-config/schema.json +++ b/packages/schematics/angular/ai-config/schema.json @@ -9,7 +9,7 @@ "tool": { "type": "array", "uniqueItems": true, - "default": "none", + "default": ["none"], "x-prompt": { "message": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai", "type": "list", @@ -50,21 +50,5 @@ "enum": ["none", "gemini", "copilot", "claude", "cursor", "jetbrains", "windsurf"] } } - }, - "if": { - "properties": { - "tool": { - "contains": { - "const": "none" - } - } - } - }, - "then": { - "properties": { - "tool": { - "maxItems": 1 - } - } } } diff --git a/packages/schematics/angular/ng-new/index_spec.ts b/packages/schematics/angular/ng-new/index_spec.ts index 0b0334ba3432..0d202bffa590 100644 --- a/packages/schematics/angular/ng-new/index_spec.ts +++ b/packages/schematics/angular/ng-new/index_spec.ts @@ -58,7 +58,7 @@ describe('Ng New Schematic', () => { ); }); - it('should should set the prefix in angular.json and in app.ts', async () => { + it('should set the prefix in angular.json and in app.ts', async () => { const options = { ...defaultOptions, prefix: 'pre' }; const tree = await schematicRunner.runSchematic('ng-new', options); From 3b693e09e8148ef22031aab8f6bc70c928aabc03 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:31:47 +0000 Subject: [PATCH 23/31] fix(@angular/cli): correctly set default array values Previously, default array values were being incorrectly treated as strings. (cherry picked from commit 47d77a3edea4dabb463d50c2bdba32475257d775) --- .../src/command-builder/schematics-command-module.ts | 11 +++++++++-- .../cli/src/command-builder/utilities/json-schema.ts | 8 ++++++-- .../src/command-builder/utilities/json-schema_spec.ts | 4 ++-- .../browser/specs/unused-files-warning_spec.ts | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) 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 529d47b078f1..ef317700d1a6 100644 --- a/packages/angular/cli/src/command-builder/schematics-command-module.ts +++ b/packages/angular/cli/src/command-builder/schematics-command-module.ts @@ -204,13 +204,20 @@ export abstract class SchematicsCommandModule ? { name: item, value: item, - checked: item === definition.default, + checked: + definition.multiselect && Array.isArray(definition.default) + ? definition.default?.includes(item) + : item === definition.default, } : { ...item, name: item.label, value: item.value, - checked: item.value === definition.default, + checked: + definition.multiselect && Array.isArray(definition.default) + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + definition.default?.includes(item.value as any) + : 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 90c619dc024e..869cab6abe4d 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -197,15 +197,19 @@ export async function parseJsonSchemaToOptions( .filter((value) => isValidTypeForEnum(typeof value)) .sort() as (string | true | number)[]; - let defaultValue: string | number | boolean | undefined = undefined; + let defaultValue: string | number | boolean | unknown[] | undefined = undefined; if (current.default !== undefined) { switch (types[0]) { case 'string': - case 'array': if (typeof current.default == 'string') { defaultValue = current.default; } break; + case 'array': + if (Array.isArray(current.default)) { + defaultValue = current.default; + } + break; case 'number': if (typeof current.default == 'number') { defaultValue = current.default; 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 cc86cc99dddc..ea7043339d65 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 @@ -37,7 +37,7 @@ describe('parseJsonSchemaToOptions', () => { }, 'arrayWithChoices': { 'type': 'array', - 'default': 'default-array', + 'default': ['default-array'], 'items': { 'type': 'string', 'enum': ['always', 'never', 'default-array'], @@ -91,7 +91,7 @@ describe('parseJsonSchemaToOptions', () => { }); it('should add default value to help', async () => { - expect(await localYargs.getHelp()).toContain('[default: "default-array"]'); + expect(await localYargs.getHelp()).toContain('[default: ["default-array"]]'); }); }); diff --git a/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts b/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts index 6e08bedfb5b6..b25d599f18a4 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts @@ -238,7 +238,7 @@ describe('Browser Builder unused files warnings', () => { host.appendToFile('src/main.ts', ''); break; case 2: - // The second should should have type.ts as unused but shouldn't warn. + // The second should have type.ts as unused but shouldn't warn. expect(logs.join().includes(warningMessageSuffix)).toBe( false, `Case ${buildNumber} failed.`, From e93919dea7df55a3aac2fa5c93c4560c50a2d749 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:32:10 +0000 Subject: [PATCH 24/31] fix(@angular-devkit/schematics-cli): correctly set default array values Previously, default array values were being incorrectly treated as strings. (cherry picked from commit aed26c38803a465842ff128c3f81bd6984e1fe3d) --- .../schematics_cli/bin/schematics.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/schematics_cli/bin/schematics.ts b/packages/angular_devkit/schematics_cli/bin/schematics.ts index 2c71e0698ad4..8e9779728a77 100644 --- a/packages/angular_devkit/schematics_cli/bin/schematics.ts +++ b/packages/angular_devkit/schematics_cli/bin/schematics.ts @@ -93,7 +93,6 @@ function _createPromptProvider(): schema.PromptProvider { definition.multiselect ? prompts.checkbox : prompts.select )({ message: definition.message, - default: definition.default, validate: (values) => { if (!definition.validator) { return true; @@ -101,15 +100,26 @@ function _createPromptProvider(): schema.PromptProvider { return definition.validator(Object.values(values).map(({ value }) => value)); }, - choices: definition.items.map((item) => + default: definition.multiselect ? undefined : definition.default, + choices: definition.items?.map((item) => typeof item == 'string' ? { name: item, value: item, + checked: + definition.multiselect && Array.isArray(definition.default) + ? definition.default?.includes(item) + : item === definition.default, } : { + ...item, name: item.label, value: item.value, + checked: + definition.multiselect && Array.isArray(definition.default) + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + definition.default?.includes(item.value as any) + : item.value === definition.default, }, ), }); From c114d27638bdc57e7194da47198a08c923939f65 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 26 Aug 2025 15:38:18 +0000 Subject: [PATCH 25/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- MODULE.bazel.lock | 4 +- package.json | 2 +- pnpm-lock.yaml | 717 +++++++++--------- 10 files changed, 420 insertions(+), 415 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 303a3814540d..36471add54a7 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/branch-manager@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ed359fc5d83..0b84280109ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -103,11 +103,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -141,7 +141,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -169,13 +169,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -194,13 +194,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -214,13 +214,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -250,11 +250,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d9d3b64757e9..6549bca8f21f 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/pull-request-labeling@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/post-approval-changes@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 848b760315b3..3e1658563b1f 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/feature-request@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ecd35bb70566..d3134e87e6e2 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 27224d6f238f..a7b1c83aa887 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/linting/licenses@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - 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 }} @@ -131,11 +131,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Build E2E tests for Windows on Linux @@ -159,7 +159,7 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -187,13 +187,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -210,12 +210,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index df2bb6d07afd..fa4db7f993d4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "acce054082b688da9a5a3d12c6550184eb9f7725", + commit = "fc71b572acb06a4830ef5566edb05500f822b7ad", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index e9ea240ae83a..a490a679071f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,8 +536,8 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "2f289317adaa135b323d670b0c447d9fade82b3c7e8d289bc1452dd774615a5e", - "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", + "@@//package.json": "08c1e51a7b71f9802961664d04ec4d7eacfc347450547e39ff25ceabc765e26c", + "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, "recordedDirentsInputs": {}, diff --git a/package.json b/package.json index 837bf753943c..01a8216a440c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73f92ea63455..533b29c47dd7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.2.0) + version: 5.1.14(@types/node@24.3.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -378,7 +378,7 @@ importers: version: 0.25.9 https-proxy-agent: specifier: 7.0.6 - version: 7.0.6(supports-color@10.1.0) + version: 7.0.6(supports-color@10.2.0) istanbul-lib-instrument: specifier: 6.0.3 version: 6.0.3 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.2 - version: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.2.0) + version: 7.8.2(@types/node@24.3.0) '@listr2/prompt-adapter-inquirer': specifier: 3.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) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.2.0) + version: 7.8.2(@types/node@24.3.0) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a} - version: 0.0.0-1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1} + version: 0.0.0-fc71b572acb06a4830ef5566edb05500f822b7ad hasBin: true '@angular/platform-browser@20.2.1': @@ -1870,8 +1870,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@firebase/ai@2.0.0': - resolution: {integrity: sha512-N/aSHjqOpU+KkYU3piMkbcuxzvqsOvxflLUXBAkYAPAz8wjE2Ye3BQDgKHEYuhMmEWqj6LFgEBUN8wwc6dfMTw==} + '@firebase/ai@2.1.0': + resolution: {integrity: sha512-4HvFr4YIzNFh0MowJLahOjJDezYSTjQar0XYVu/sAycoxQ+kBsfXuTPRLVXCYfMR5oNwQgYe4Q2gAOYKKqsOyA==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -1908,15 +1908,15 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/app-compat@0.5.0': - resolution: {integrity: sha512-nUnNpOeRj0KZzVzHsyuyrmZKKHfykZ8mn40FtG28DeSTWeM5b/2P242Va4bmQpJsy5y32vfv50+jvdckrpzy7Q==} + '@firebase/app-compat@0.5.1': + resolution: {integrity: sha512-BEy1L6Ufd85ZSP79HDIv0//T9p7d5Bepwy+2mKYkgdXBGKTbFm2e2KxyF1nq4zSQ6RRBxWi0IY0zFVmoBTZlUA==} engines: {node: '>=20.0.0'} '@firebase/app-types@0.9.3': resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - '@firebase/app@0.14.0': - resolution: {integrity: sha512-APIAeKvRNFWKJLjIL8wLDjh7u8g6ZjaeVmItyqSjCdEkJj14UuVlus74D8ofsOMWh45HEwxwkd96GYbi+CImEg==} + '@firebase/app@0.14.1': + resolution: {integrity: sha512-jxTrDbxnGoX7cGz7aP9E7v9iKvBbQfZ8Gz4TH3SfrrkcyIojJM3+hJnlbGnGxHrABts844AxRcg00arMZEyA6Q==} engines: {node: '>=20.0.0'} '@firebase/auth-compat@0.6.0': @@ -2029,16 +2029,16 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/performance-compat@0.2.21': - resolution: {integrity: sha512-OQfYRsIQiEf9ez1SOMLb5TRevBHNIyA2x1GI1H10lZ432W96AK5r4LTM+SNApg84dxOuHt6RWSQWY7TPWffKXg==} + '@firebase/performance-compat@0.2.22': + resolution: {integrity: sha512-xLKxaSAl/FVi10wDX/CHIYEUP13jXUjinL+UaNXT9ByIvxII5Ne5150mx6IgM8G6Q3V+sPiw9C8/kygkyHUVxg==} peerDependencies: '@firebase/app-compat': 0.x '@firebase/performance-types@0.2.3': resolution: {integrity: sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==} - '@firebase/performance@0.7.8': - resolution: {integrity: sha512-k6xfNM/CdTl4RaV4gT/lH53NU+wP33JiN0pUeNBzGVNvfXZ3HbCkoISE3M/XaiOwHgded1l6XfLHa4zHgm0Wyg==} + '@firebase/performance@0.7.9': + resolution: {integrity: sha512-UzybENl1EdM2I1sjYm74xGt/0JzRnU/0VmfMAKo2LSpHJzaj77FCLZXmYQ4oOuE+Pxtt8Wy2BVJEENiZkaZAzQ==} peerDependencies: '@firebase/app': 0.x @@ -2111,8 +2111,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.13.0': - resolution: {integrity: sha512-BxilXzE8cJ0zt5/lXk6KwuBcIT9P2Lbi2WXhwWMbxf1RNeC68/8DmYQqMrzQP333CieRMdbDXs0eNCphLoScWg==} + '@google/genai@1.15.0': + resolution: {integrity: sha512-4CSW+hRTESWl3xVtde7pkQ3E+dDFhDq+m4ztmccRctZfx1gKy3v0M9STIMGk6Nq0s6O2uKMXupOZQ1JGorXVwQ==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.0 @@ -2179,6 +2179,15 @@ packages: '@types/node': optional: true + '@inquirer/confirm@5.1.16': + resolution: {integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/core@10.2.0': resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} engines: {node: '>=18'} @@ -2246,8 +2255,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.0': - resolution: {integrity: sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==} + '@inquirer/prompts@7.8.2': + resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2255,8 +2264,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.2': - resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} + '@inquirer/prompts@7.8.4': + resolution: {integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3275,8 +3284,8 @@ packages: '@types/folder-hash@4.0.4': resolution: {integrity: sha512-c+PwHm51Dw3fXM8SDK+93PO3oXdk4XNouCCvV67lj4aijRkZz5g67myk+9wqWWnyv3go6q96hT6ywcd3XtoZiQ==} - '@types/git-raw-commits@2.0.0': - resolution: {integrity: sha512-sHXOKjKqu1kQxbxkZiz2s0yx2kc7g20g6tE98LYGq5jQyT9r+GRyTn19NBfPotOlXhGO6oPvYT3tdnPl8MYYyA==} + '@types/git-raw-commits@2.0.4': + resolution: {integrity: sha512-PYmTK156j6TilbwtnO2JErH4TCC1izpgP3kRE3KUX35bjBOD2A+syCGeercqHXBcM6wL+DU0WbJB2Gz8fPR+8A==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -3305,9 +3314,6 @@ packages: '@types/jasmine-reporters@2.5.3': resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==} - '@types/jasmine@5.1.8': - resolution: {integrity: sha512-u7/CnvRdh6AaaIzYjCgUuVbREFgulhX05Qtf6ZtW+aOcjCKKVvKgpkPYJBFTZSHtFBYimzU4zP0V2vrEsq9Wcg==} - '@types/jasmine@5.1.9': resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} @@ -3357,8 +3363,8 @@ packages: '@types/node@22.17.2': resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} - '@types/node@24.2.0': - resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -4276,10 +4282,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.5.0: - resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.0: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -5277,8 +5279,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase@12.0.0: - resolution: {integrity: sha512-KV+OrMJpi2uXlqL2zaCcXb7YuQbY/gMIWT1hf8hKeTW1bSumWaHT5qfmn0WTpHwKQa3QEVOtZR2ta9EchcmYuw==} + firebase@12.1.0: + resolution: {integrity: sha512-oZucxvfWKuAW4eHHRqGKzC43fLiPqPwHYBHPRNsnkgonqYaq0VurYgqgBosRlEulW+TWja/5Tpo2FpUU+QrfEQ==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -6768,8 +6770,8 @@ packages: tailwindcss: optional: true - nock@14.0.8: - resolution: {integrity: sha512-5DCGrkwK1f8kxUvqvzLWb97XuDUY4/t5M3ZcogPfLGvC2wO8wjRQsIDSXj2L6e1J0Dv8xscf9wWSvGnS3OL29Q==} + nock@14.0.10: + resolution: {integrity: sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==} engines: {node: '>=18.20.0 <20 || >=20.12.1'} node-addon-api@6.1.0: @@ -8104,8 +8106,8 @@ packages: stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} - supports-color@10.1.0: - resolution: {integrity: sha512-GBuewsPrhJPftT+fqDa9oI/zc5HNsG9nREqwzoSFDOIqf0NggOZbHQj2TE1P1CDJK8ZogFnlZY9hWoUiur7I/A==} + supports-color@10.2.0: + resolution: {integrity: sha512-5eG9FQjEjDbAlI5+kdpdyPIBMRH4GfTVDGREVupaZHmVoppknhM29b/S9BkQz7cathp85BVgRi/As3Siln7e0Q==} engines: {node: '>=18'} supports-color@2.0.0: @@ -9155,13 +9157,13 @@ 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/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@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.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) + '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) + '@google/genai': 1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.4(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) '@octokit/auth-app': 8.0.2 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 @@ -9178,10 +9180,10 @@ snapshots: '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 - '@types/git-raw-commits': 2.0.0 - '@types/jasmine': 5.1.8 + '@types/git-raw-commits': 2.0.4 + '@types/jasmine': 5.1.9 '@types/minimatch': 6.0.0 - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@types/semver': 7.7.0 '@types/supports-color': 10.0.0 '@types/which': 3.0.4 @@ -9189,14 +9191,14 @@ snapshots: '@types/yarnpkg__lockfile': 1.1.9 '@yarnpkg/lockfile': 1.1.0 bufferutil: 4.0.9 - chalk: 5.5.0 + chalk: 5.6.0 cli-progress: 3.12.0 conventional-commits-parser: 5.0.0 ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 - firebase: 12.0.0 - folder-hash: 4.1.1(supports-color@10.1.0) + firebase: 12.1.0 + folder-hash: 4.1.1(supports-color@10.2.0) git-raw-commits: 4.0.0 jasmine: 5.9.0 jasmine-core: 5.9.0 @@ -9204,9 +9206,9 @@ snapshots: jsonc-parser: 3.3.1 minimatch: 10.0.3 multimatch: 7.0.0 - nock: 14.0.8 + nock: 14.0.10 semver: 7.7.2 - supports-color: 10.1.0 + supports-color: 10.2.0 typed-graphqlify: 3.1.6 typescript: 5.9.2 utf-8-validate: 6.0.5 @@ -9278,7 +9280,7 @@ snapshots: '@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) + debug: 4.4.1(supports-color@10.2.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9330,7 +9332,7 @@ snapshots: '@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) + debug: 4.4.1(supports-color@10.2.0) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -9918,7 +9920,7 @@ snapshots: '@babel/parser': 7.28.3 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -10088,7 +10090,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10102,7 +10104,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -10124,9 +10126,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@firebase/ai@2.0.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/ai@2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/app-check-interop-types': 0.3.3 '@firebase/app-types': 0.9.3 '@firebase/component': 0.7.0 @@ -10134,11 +10136,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/analytics': 0.10.18(@firebase/app@0.14.0) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) '@firebase/analytics-types': 0.8.3 - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10147,20 +10149,20 @@ snapshots: '@firebase/analytics-types@0.8.3': {} - '@firebase/analytics@0.10.18(@firebase/app@0.14.0)': + '@firebase/analytics@0.10.18(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-check': 0.11.0(@firebase/app@0.14.0) + '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) '@firebase/app-check-types': 0.5.3 - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10172,17 +10174,17 @@ snapshots: '@firebase/app-check-types@0.5.3': {} - '@firebase/app-check@0.11.0(@firebase/app@0.14.0)': + '@firebase/app-check@0.11.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-compat@0.5.0': + '@firebase/app-compat@0.5.1': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10190,7 +10192,7 @@ snapshots: '@firebase/app-types@0.9.3': {} - '@firebase/app@0.14.0': + '@firebase/app@0.14.1': dependencies: '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10198,10 +10200,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 - '@firebase/auth': 1.11.0(@firebase/app@0.14.0) + '@firebase/app-compat': 0.5.1 + '@firebase/auth': 1.11.0(@firebase/app@0.14.1) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 @@ -10218,9 +10220,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/auth@1.11.0(@firebase/app@0.14.0)': + '@firebase/auth@1.11.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10231,9 +10233,9 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/data-connect@0.3.11(@firebase/app@0.14.0)': + '@firebase/data-connect@0.3.11(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10264,11 +10266,11 @@ snapshots: faye-websocket: 0.11.4 tslib: 2.8.1 - '@firebase/firestore-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/firestore-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.0) + '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10281,9 +10283,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/firestore@4.9.0(@firebase/app@0.14.0)': + '@firebase/firestore@4.9.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10292,11 +10294,11 @@ snapshots: '@grpc/proto-loader': 0.7.15 tslib: 2.8.1 - '@firebase/functions-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/functions-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/functions': 0.13.0(@firebase/app@0.14.0) + '@firebase/functions': 0.13.0(@firebase/app@0.14.1) '@firebase/functions-types': 0.6.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10305,9 +10307,9 @@ snapshots: '@firebase/functions-types@0.6.3': {} - '@firebase/functions@0.13.0(@firebase/app@0.14.0)': + '@firebase/functions@0.13.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/app-check-interop-types': 0.3.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 @@ -10315,11 +10317,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10331,9 +10333,9 @@ snapshots: dependencies: '@firebase/app-types': 0.9.3 - '@firebase/installations@0.6.19(@firebase/app@0.14.0)': + '@firebase/installations@0.6.19(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 idb: 7.1.1 @@ -10343,11 +10345,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/messaging': 0.12.23(@firebase/app@0.14.0) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: @@ -10355,22 +10357,22 @@ snapshots: '@firebase/messaging-interop-types@0.2.3': {} - '@firebase/messaging@0.12.23(@firebase/app@0.14.0)': + '@firebase/messaging@0.12.23(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/messaging-interop-types': 0.2.3 '@firebase/util': 1.13.0 idb: 7.1.1 tslib: 2.8.1 - '@firebase/performance-compat@0.2.21(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/performance': 0.7.8(@firebase/app@0.14.0) + '@firebase/performance': 0.7.9(@firebase/app@0.14.1) '@firebase/performance-types': 0.2.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10379,22 +10381,22 @@ snapshots: '@firebase/performance-types@0.2.3': {} - '@firebase/performance@0.7.8(@firebase/app@0.14.0)': + '@firebase/performance@0.7.9(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 web-vitals: 4.2.4 - '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.0) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) '@firebase/remote-config-types': 0.4.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10403,20 +10405,20 @@ snapshots: '@firebase/remote-config-types@0.4.0': {} - '@firebase/remote-config@0.6.6(@firebase/app@0.14.0)': + '@firebase/remote-config@0.6.6(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/storage': 0.14.0(@firebase/app@0.14.0) + '@firebase/storage': 0.14.0(@firebase/app@0.14.1) '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10429,9 +10431,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/storage@0.14.0(@firebase/app@0.14.0)': + '@firebase/storage@0.14.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10444,17 +10446,17 @@ snapshots: '@glideapps/ts-necessities@2.2.3': {} - '@google-cloud/common@6.0.0(supports-color@10.1.0)': + '@google-cloud/common@6.0.0(supports-color@10.2.0)': dependencies: '@google-cloud/projectify': 4.0.0 '@google-cloud/promisify': 4.1.0 arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) html-entities: 2.6.0 - retry-request: 8.0.2(supports-color@10.1.0) - teeny-request: 10.1.0(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) + teeny-request: 10.1.0(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -10468,9 +10470,9 @@ snapshots: '@google-cloud/promisify@5.0.0': {} - '@google-cloud/spanner@8.0.0(supports-color@10.1.0)': + '@google-cloud/spanner@8.0.0(supports-color@10.2.0)': dependencies: - '@google-cloud/common': 6.0.0(supports-color@10.1.0) + '@google-cloud/common': 6.0.0(supports-color@10.2.0) '@google-cloud/precise-date': 5.0.0 '@google-cloud/projectify': 5.0.0 '@google-cloud/promisify': 5.0.0 @@ -10486,26 +10488,26 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.1.0) - google-gax: 5.0.3(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) + google-gax: 5.0.3(supports-color@10.2.0) grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 merge-stream: 2.0.0 p-queue: 6.6.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) split-array-stream: 2.0.0 stack-trace: 0.0.10 stream-events: 1.0.5 - teeny-request: 10.1.0(supports-color@10.1.0) + teeny-request: 10.1.0(supports-color@10.2.0) through2: 4.0.2 transitivePeerDependencies: - supports-color - '@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)': + '@google/genai@1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5)': dependencies: - google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.1.0) + google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.0) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: '@modelcontextprotocol/sdk': 1.17.3 @@ -10554,27 +10556,34 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@24.2.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/confirm@5.1.14(@types/node@24.2.0)': + '@inquirer/confirm@5.1.14(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/core@10.2.0(@types/node@24.2.0)': + '@inquirer/confirm@5.1.16(@types/node@24.3.0)': + dependencies: + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) + optionalDependencies: + '@types/node': 24.3.0 + + '@inquirer/core@10.2.0(@types/node@24.3.0)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -10582,115 +10591,115 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/editor@4.2.18(@types/node@24.2.0)': + '@inquirer/editor@4.2.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@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) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/external-editor': 1.0.1(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/expand@4.0.18(@types/node@24.2.0)': + '@inquirer/expand@4.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/external-editor@1.0.1(@types/node@24.2.0)': + '@inquirer/external-editor@1.0.1(@types/node@24.3.0)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.2.0)': + '@inquirer/input@4.2.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/number@3.0.18(@types/node@24.2.0)': + '@inquirer/number@3.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/password@4.0.18(@types/node@24.2.0)': + '@inquirer/password@4.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/prompts@7.8.0(@types/node@24.2.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) - '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.18(@types/node@24.2.0) - '@inquirer/expand': 4.0.18(@types/node@24.2.0) - '@inquirer/input': 4.2.2(@types/node@24.2.0) - '@inquirer/number': 3.0.18(@types/node@24.2.0) - '@inquirer/password': 4.0.18(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) - '@inquirer/search': 3.1.1(@types/node@24.2.0) - '@inquirer/select': 4.3.2(@types/node@24.2.0) + '@types/node': 24.3.0 + + '@inquirer/prompts@7.8.2(@types/node@24.3.0)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) + '@inquirer/confirm': 5.1.14(@types/node@24.3.0) + '@inquirer/editor': 4.2.18(@types/node@24.3.0) + '@inquirer/expand': 4.0.18(@types/node@24.3.0) + '@inquirer/input': 4.2.2(@types/node@24.3.0) + '@inquirer/number': 3.0.18(@types/node@24.3.0) + '@inquirer/password': 4.0.18(@types/node@24.3.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) + '@inquirer/search': 3.1.1(@types/node@24.3.0) + '@inquirer/select': 4.3.2(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/prompts@7.8.2(@types/node@24.2.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) - '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.18(@types/node@24.2.0) - '@inquirer/expand': 4.0.18(@types/node@24.2.0) - '@inquirer/input': 4.2.2(@types/node@24.2.0) - '@inquirer/number': 3.0.18(@types/node@24.2.0) - '@inquirer/password': 4.0.18(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) - '@inquirer/search': 3.1.1(@types/node@24.2.0) - '@inquirer/select': 4.3.2(@types/node@24.2.0) + '@types/node': 24.3.0 + + '@inquirer/prompts@7.8.4(@types/node@24.3.0)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) + '@inquirer/confirm': 5.1.16(@types/node@24.3.0) + '@inquirer/editor': 4.2.18(@types/node@24.3.0) + '@inquirer/expand': 4.0.18(@types/node@24.3.0) + '@inquirer/input': 4.2.2(@types/node@24.3.0) + '@inquirer/number': 3.0.18(@types/node@24.3.0) + '@inquirer/password': 4.0.18(@types/node@24.3.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) + '@inquirer/search': 3.1.1(@types/node@24.3.0) + '@inquirer/select': 4.3.2(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/rawlist@4.1.6(@types/node@24.2.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/search@3.1.1(@types/node@24.2.0)': + '@inquirer/search@3.1.1(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/select@4.3.2(@types/node@24.2.0)': + '@inquirer/select@4.3.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/type@3.0.8(@types/node@24.2.0)': + '@inquirer/type@3.0.8(@types/node@24.3.0)': optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@isaacs/balanced-match@4.0.1': {} @@ -10776,10 +10785,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@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)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/prompts': 7.8.2(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -10944,7 +10953,7 @@ snapshots: dependencies: agent-base: 7.1.4 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) lru-cache: 10.4.3 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -11244,7 +11253,7 @@ snapshots: '@puppeteer/browsers@2.10.7': dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -11628,7 +11637,7 @@ snapshots: '@types/folder-hash@4.0.4': {} - '@types/git-raw-commits@2.0.0': + '@types/git-raw-commits@2.0.4': dependencies: '@types/node': 22.17.2 @@ -11660,8 +11669,6 @@ snapshots: dependencies: '@types/jasmine': 5.1.9 - '@types/jasmine@5.1.8': {} - '@types/jasmine@5.1.9': {} '@types/json-schema@7.0.15': {} @@ -11724,7 +11731,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.2.0': + '@types/node@24.3.0': dependencies: undici-types: 7.10.0 @@ -11814,7 +11821,7 @@ snapshots: '@types/supports-color@10.0.0': dependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 '@types/tapable@1.0.12': {} @@ -11888,7 +11895,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) eslint: 9.33.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: @@ -11898,7 +11905,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -11917,7 +11924,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2) - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) eslint: 9.33.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 @@ -11934,7 +11941,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -11966,7 +11973,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/loaders': 8.0.0-next-8.9 '@verdaccio/signature': 8.0.0-next-8.11 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: @@ -11980,7 +11987,7 @@ snapshots: '@verdaccio/config@8.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) js-yaml: 4.1.0 lodash: 4.17.21 minimatch: 7.4.6 @@ -12016,7 +12023,7 @@ snapshots: '@verdaccio/loaders@8.0.0-next-8.9': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -12039,7 +12046,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/logger-prettify': 8.0.0-next-8.3 colorette: 2.0.20 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -12064,7 +12071,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) express: 4.21.2 express-rate-limit: 5.5.1 lodash: 4.17.21 @@ -12079,7 +12086,7 @@ snapshots: dependencies: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color @@ -12090,7 +12097,7 @@ snapshots: dependencies: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) gunzip-maybe: 1.4.2 tar-stream: 3.1.7 transitivePeerDependencies: @@ -12101,7 +12108,7 @@ snapshots: '@verdaccio/url@13.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: @@ -12113,9 +12120,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12125,13 +12132,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12457,9 +12464,9 @@ snapshots: dependencies: es6-promisify: 5.0.0 - agent-base@6.0.2(supports-color@10.1.0): + agent-base@6.0.2(supports-color@10.2.0): dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -12795,7 +12802,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -13002,8 +13009,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.5.0: {} - chalk@5.6.0: {} chardet@2.1.0: {} @@ -13380,17 +13385,17 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@10.1.0): + debug@4.4.0(supports-color@10.2.0): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 - debug@4.4.1(supports-color@10.1.0): + debug@4.4.1(supports-color@10.2.0): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 decamelize@1.2.0: {} @@ -13876,7 +13881,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14014,7 +14019,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -14042,7 +14047,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14145,7 +14150,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -14175,35 +14180,35 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase@12.0.0: + firebase@12.1.0: dependencies: - '@firebase/ai': 2.0.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/analytics': 0.10.18(@firebase/app@0.14.0) - '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/app': 0.14.0 - '@firebase/app-check': 0.11.0(@firebase/app@0.14.0) - '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/app-compat': 0.5.0 + '@firebase/ai': 2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) + '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/app': 0.14.1 + '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) + '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/app-compat': 0.5.1 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.0) - '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/data-connect': 0.3.11(@firebase/app@0.14.0) + '@firebase/auth': 1.11.0(@firebase/app@0.14.1) + '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/data-connect': 0.3.11(@firebase/app@0.14.1) '@firebase/database': 1.1.0 '@firebase/database-compat': 2.1.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.0) - '@firebase/firestore-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/functions': 0.13.0(@firebase/app@0.14.0) - '@firebase/functions-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) - '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/messaging': 0.12.23(@firebase/app@0.14.0) - '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/performance': 0.7.8(@firebase/app@0.14.0) - '@firebase/performance-compat': 0.2.21(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.0) - '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/storage': 0.14.0(@firebase/app@0.14.0) - '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) + '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) + '@firebase/firestore-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/functions': 0.13.0(@firebase/app@0.14.1) + '@firebase/functions-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) + '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/performance': 0.7.9(@firebase/app@0.14.1) + '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) + '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/storage': 0.14.0(@firebase/app@0.14.1) + '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) '@firebase/util': 1.13.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -14217,16 +14222,16 @@ snapshots: flatted@3.3.3: {} - folder-hash@4.1.1(supports-color@10.1.0): + folder-hash@4.1.1(supports-color@10.2.0): dependencies: - debug: 4.4.0(supports-color@10.1.0) + debug: 4.4.0(supports-color@10.2.0) minimatch: 7.4.6 transitivePeerDependencies: - supports-color follow-redirects@1.15.11(debug@4.4.1): optionalDependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) for-each@0.3.5: dependencies: @@ -14305,10 +14310,10 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1(encoding@0.1.13)(supports-color@10.1.0): + gaxios@6.7.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) uuid: 9.0.1 @@ -14316,26 +14321,26 @@ snapshots: - encoding - supports-color - gaxios@7.1.1(supports-color@10.1.0): + gaxios@7.1.1(supports-color@10.2.0): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) node-fetch: 3.3.2 transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.1.0): + gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) google-logging-utils: 0.0.2 json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@7.0.1(supports-color@10.1.0): + gcp-metadata@7.0.1(supports-color@10.2.0): dependencies: - gaxios: 7.1.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) google-logging-utils: 1.1.1 json-bigint: 1.0.0 transitivePeerDependencies: @@ -14383,7 +14388,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14465,43 +14470,43 @@ snapshots: pify: 2.3.0 pinkie-promise: 2.0.1 - google-auth-library@10.2.1(supports-color@10.1.0): + google-auth-library@10.2.1(supports-color@10.2.0): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.1(supports-color@10.1.0) - gcp-metadata: 7.0.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) + gcp-metadata: 7.0.1(supports-color@10.2.0) google-logging-utils: 1.1.1 - gtoken: 8.0.0(supports-color@10.1.0) + gtoken: 8.0.0(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.1.0): + google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) - gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.1.0) - gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) + gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.2.0) + gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - google-gax@5.0.3(supports-color@10.1.0): + google-gax@5.0.3(supports-color@10.2.0): dependencies: '@grpc/grpc-js': 1.13.4 '@grpc/proto-loader': 0.8.0 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.2.1(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 proto3-json-serializer: 3.0.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14527,17 +14532,17 @@ snapshots: '@grpc/grpc-js': 1.13.4 protobufjs: 7.5.4 - gtoken@7.1.0(encoding@0.1.13)(supports-color@10.1.0): + gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.0): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - gtoken@8.0.0(supports-color@10.1.0): + gtoken@8.0.0(supports-color@10.2.0): dependencies: - gaxios: 7.1.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - supports-color @@ -14659,18 +14664,18 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-agent@5.0.0(supports-color@10.1.0): + http-proxy-agent@5.0.0(supports-color@10.2.0): dependencies: '@tootallnate/once': 2.0.0 - agent-base: 6.0.2(supports-color@10.1.0) - debug: 4.4.1(supports-color@10.1.0) + agent-base: 6.0.2(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14689,7 +14694,7 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.16 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-proxy: 1.18.1(debug@4.4.1) is-glob: 4.0.3 is-plain-object: 5.0.0 @@ -14728,17 +14733,17 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1(supports-color@10.1.0): + https-proxy-agent@5.0.1(supports-color@10.2.0): dependencies: - agent-base: 6.0.2(supports-color@10.1.0) - debug: 4.4.1(supports-color@10.1.0) + agent-base: 6.0.2(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6(supports-color@10.1.0): + https-proxy-agent@7.0.6(supports-color@10.2.0): dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -15081,7 +15086,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -15163,7 +15168,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.21 parse5: 7.3.0 @@ -15366,7 +15371,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -15386,7 +15391,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -15555,7 +15560,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -15852,7 +15857,7 @@ snapshots: optionalDependencies: rollup: 4.46.2 - nock@14.0.8: + nock@14.0.10: dependencies: '@mswjs/interceptors': 0.39.6 json-stringify-safe: 5.0.1 @@ -16143,10 +16148,10 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) get-uri: 6.0.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) pac-resolver: 7.0.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -16323,7 +16328,7 @@ snapshots: portfinder@1.0.37: dependencies: async: 3.2.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -16451,9 +16456,9 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) lru-cache: 7.18.3 pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 @@ -16496,7 +16501,7 @@ snapshots: debug: 4.3.4 devtools-protocol: 0.0.1045489 extract-zip: 2.0.1 - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) proxy-from-env: 1.1.0 rimraf: 3.0.2 tar-fs: 2.1.1 @@ -16512,7 +16517,7 @@ snapshots: dependencies: '@puppeteer/browsers': 2.10.7 chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) devtools-protocol: 0.0.1475386 typed-query-selector: 2.12.0 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -16524,7 +16529,7 @@ snapshots: puppeteer@18.2.1(bufferutil@4.0.9)(encoding@0.1.13): dependencies: - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) progress: 2.0.3 proxy-from-env: 1.1.0 puppeteer-core: 18.2.1(bufferutil@4.0.9)(encoding@0.1.13) @@ -16745,10 +16750,10 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - retry-request@8.0.2(supports-color@10.1.0): + retry-request@8.0.2(supports-color@10.2.0): dependencies: extend: 3.0.2 - teeny-request: 10.1.0(supports-color@10.1.0) + teeny-request: 10.1.0(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -16839,7 +16844,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -16980,7 +16985,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -17192,7 +17197,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -17253,7 +17258,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -17264,7 +17269,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -17342,7 +17347,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -17429,7 +17434,7 @@ snapshots: stubs@3.0.0: {} - supports-color@10.1.0: {} + supports-color@10.2.0: {} supports-color@2.0.0: {} @@ -17501,10 +17506,10 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - teeny-request@10.1.0(supports-color@10.1.0): + teeny-request@10.1.0(supports-color@10.2.0): dependencies: - http-proxy-agent: 5.0.0(supports-color@10.1.0) - https-proxy-agent: 5.0.1(supports-color@10.1.0) + http-proxy-agent: 5.0.0(supports-color@10.2.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) node-fetch: 3.3.2 stream-events: 1.0.5 transitivePeerDependencies: @@ -17649,7 +17654,7 @@ snapshots: tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -17852,7 +17857,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 express: 4.21.2 - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) node-fetch: 2.6.7(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -17871,7 +17876,7 @@ snapshots: '@verdaccio/file-locking': 13.0.0-next-8.4 apache-md5: 1.1.8 bcryptjs: 2.4.3 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: @@ -17899,7 +17904,7 @@ snapshots: clipanion: 4.0.0-rc.4 compression: 1.8.1 cors: 2.8.5 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) envinfo: 7.14.0 express: 4.21.2 handlebars: 4.7.8 @@ -17921,13 +17926,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -17942,7 +17947,7 @@ snapshots: - tsx - yaml - vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -17951,7 +17956,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -17959,18 +17964,18 @@ snapshots: terser: 5.43.1 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 @@ -17981,11 +17986,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 24603ba2db81b1bdbeb6bc1cea9f0d94bc970c13 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 26 Aug 2025 17:02:21 +0000 Subject: [PATCH 26/31] build: update actions/download-artifact digest to d3f86a1 See associated pull request for more information. --- .github/workflows/ci.yml | 2 +- .github/workflows/pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b84280109ff..0b1fb967c0eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -145,7 +145,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests - uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: win-e2e-build-artifacts path: dist/bin/tests/legacy-cli/ diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a7b1c83aa887..67885976829a 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -163,7 +163,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests - uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: win-e2e-build-artifacts path: dist/bin/tests/legacy-cli/ From 4d1cd2ce70a673bd9c3b7436730f7906b18f3ade Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 26 Aug 2025 18:39:43 +0000 Subject: [PATCH 27/31] ci: do not expand glob in shell This ensures that the glob is expanded by the Node.js package as otherwise not all tests will be picked up. (cherry picked from commit 8089643aa0c68287c2161e70ceb54c44ec975122) --- .github/shared-actions/windows-bazel-test/action.yml | 9 +-------- .github/workflows/pr.yml | 2 +- scripts/windows-testing/parallel-executor.mjs | 6 ++++-- tests/legacy-cli/e2e_runner.ts | 4 ++-- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 29c58eb10167..5e2ec1777892 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -6,12 +6,6 @@ inputs: test_target_name: description: E2E test target name. required: true - test_args: - description: | - Text representing the command line arguments that - should be passed to the e2e test runner. - required: false - default: '' e2e_temp_dir: description: 'The temporary directory path for E2E tests.' required: false @@ -45,5 +39,4 @@ runs: run: | node ./scripts/windows-testing/parallel-executor.mjs \ "./dist/bin/tests/legacy-cli/${{ inputs.test_target_name }}_/${{ inputs.test_target_name }}.bat.runfiles" \ - ${{ inputs.test_target_name }} \ - "${{ inputs.test_args }}" + ${{ inputs.test_target_name }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 67885976829a..784c5bb08c06 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -171,9 +171,9 @@ jobs: uses: ./.github/shared-actions/windows-bazel-test with: test_target_name: e2e.esbuild_node22 - test_args: --glob "tests/basic/{build,rebuild}.ts" env: E2E_SHARD_TOTAL: 1 + TESTBRIDGE_TEST_ONLY: tests/basic/{build,rebuild}.ts e2e-package-managers: needs: build diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs index 7a7ec7508929..1f62bf03cca1 100644 --- a/scripts/windows-testing/parallel-executor.mjs +++ b/scripts/windows-testing/parallel-executor.mjs @@ -13,7 +13,7 @@ import { stripVTControlCharacters } from 'node:util'; const initialStatusRegex = /Running (\d+) tests/; async function main() { - const [runfilesDir, targetName, testArgs] = process.argv.slice(2); + const [runfilesDir, targetName, ...testArgs] = process.argv.slice(2); const testEntrypoint = path.resolve(runfilesDir, '../', targetName); const testWorkingDir = path.resolve(runfilesDir, '_main'); const tasks = []; @@ -22,7 +22,7 @@ async function main() { tasks.push( spawnTest( 'bash', - [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], + [testEntrypoint, ...testArgs], { cwd: testWorkingDir, env: { @@ -35,6 +35,8 @@ async function main() { BAZEL_BINDIR: '.', // Needed to run the E2E in a different temp path. E2E_TEMP: process.env.E2E_TEMP, + // Using the `--glob` causes a bunch of issues due to path expansion in nested bash scripts. + TESTBRIDGE_TEST_ONLY: process.env.TESTBRIDGE_TEST_ONLY, }, }, (s) => (progress[0] = s), diff --git a/tests/legacy-cli/e2e_runner.ts b/tests/legacy-cli/e2e_runner.ts index 051c1174a624..5d7031f20489 100644 --- a/tests/legacy-cli/e2e_runner.ts +++ b/tests/legacy-cli/e2e_runner.ts @@ -47,7 +47,7 @@ const parsed = parseArgs({ options: { 'debug': { type: 'boolean', default: !!process.env.BUILD_WORKSPACE_DIRECTORY }, 'esbuild': { type: 'boolean' }, - 'glob': { type: 'string', default: process.env.TESTBRIDGE_TEST_ONLY }, + 'glob': { type: 'string', default: 'tests/**/*.js' }, 'ignore': { type: 'string', multiple: true }, 'ng-snapshots': { type: 'boolean' }, 'ng-tag': { type: 'string' }, @@ -130,7 +130,7 @@ function lastLogger() { // Under bazel the compiled file (.js) and types (.d.ts) are available. const SRC_FILE_EXT_RE = /\.js$/; -const testGlob = argv.glob?.replace(/\.ts$/, '.js') || `tests/**/*.js`; +const testGlob = (process.env.TESTBRIDGE_TEST_ONLY ?? argv.glob).replace(/\.ts$/, '.js'); const e2eRoot = path.join(__dirname, 'e2e'); const allSetups = glob.sync(`setup/**/*.js`, { cwd: e2eRoot }).sort(); From b6816b0cbaf1262d7015b9d7f7fb425f53995947 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 26 Aug 2025 20:41:14 -0400 Subject: [PATCH 28/31] fix(@angular/build): ensure karma polyfills reporter factory returns a value The factory function for the `reporter:angular--polyfills` Karma plugin did not return a value, which violates Karma's plugin contract. This could cause Karma to crash when multiple reporters were in use, particularly with tools that use Karma's multi-reporter functionality. This change modifies the factory to return an object with an empty `adapters` array (`{ adapters: [] }`). This satisfies Karma's plugin requirements and ensures compatibility with the multi-reporter, preventing the crash. Fixes #31039 (cherry picked from commit 4b49a207a1de27b82416c6225a59bc10f48bdcbc) --- .../angular/build/src/builders/karma/application_builder.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/angular/build/src/builders/karma/application_builder.ts b/packages/angular/build/src/builders/karma/application_builder.ts index ae238b7239cf..004c46930ff9 100644 --- a/packages/angular/build/src/builders/karma/application_builder.ts +++ b/packages/angular/build/src/builders/karma/application_builder.ts @@ -187,6 +187,9 @@ class AngularPolyfillsPlugin { included: true, watched: false, }); + + // Karma needs a return value for a factory and Karma's multi-reporter expects an `adapters` array + return { adapters: [] }; }, AngularPolyfillsPlugin), ], }; From 06a6ddc102f5dc9018ec982f6e4cf56259cc4b52 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 22 Jul 2025 17:15:43 -0400 Subject: [PATCH 29/31] fix(@angular/build): correct JS/TS file paths when running under Bazel The compiler plugin now rewrites Bazel file paths if they were resolved outside of the execution root. This behavior is only used if Bazel environment variables are present. (cherry picked from commit 261dbb37cbe01492240c4cedc644663b15a4296a) --- .../tools/esbuild/angular/compiler-plugin.ts | 9 ++++-- .../esbuild/angular/rewrite-bazel-paths.ts | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts diff --git a/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts b/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts index f56e6c6c3119..78b395058516 100644 --- a/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts +++ b/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts @@ -29,6 +29,7 @@ import { SharedTSCompilationState, getSharedCompilationState } from './compilati import { ComponentStylesheetBundler } from './component-stylesheets'; import { FileReferenceTracker } from './file-reference-tracker'; import { setupJitPluginCallbacks } from './jit-plugin-callbacks'; +import { rewriteForBazel } from './rewrite-bazel-paths'; import { SourceFileCache } from './source-file-cache'; export interface CompilerPluginOptions { @@ -411,8 +412,8 @@ export function createCompilerPlugin( }); build.onLoad({ filter: /\.[cm]?[jt]sx?$/ }, async (args) => { - const request = path.normalize( - pluginOptions.fileReplacements?.[path.normalize(args.path)] ?? args.path, + const request = rewriteForBazel( + path.normalize(pluginOptions.fileReplacements?.[path.normalize(args.path)] ?? args.path), ); const isJS = /\.[cm]?js$/.test(request); @@ -478,13 +479,14 @@ export function createCompilerPlugin( return { contents, loader, + resolveDir: path.dirname(request), }; }); build.onLoad( { filter: /\.[cm]?js$/ }, createCachedLoad(pluginOptions.loadResultCache, async (args) => { - let request = args.path; + let request = rewriteForBazel(args.path); if (pluginOptions.fileReplacements) { const replacement = pluginOptions.fileReplacements[path.normalize(args.path)]; if (replacement) { @@ -505,6 +507,7 @@ export function createCompilerPlugin( return { contents, loader: 'js', + resolveDir: path.dirname(request), watchFiles: request !== args.path ? [request] : undefined, }; }, diff --git a/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts b/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts new file mode 100644 index 000000000000..8a6fb6aa82a4 --- /dev/null +++ b/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts @@ -0,0 +1,30 @@ +/** + * @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 { join, relative } from 'node:path'; + +const bazelBinDirectory = process.env['BAZEL_BINDIR']; +const bazelExecRoot = process.env['JS_BINARY__EXECROOT']; + +export function rewriteForBazel(path: string): string { + if (!bazelBinDirectory || !bazelExecRoot) { + return path; + } + + const fromExecRoot = relative(bazelExecRoot, path); + if (!fromExecRoot.startsWith('..')) { + return path; + } + + const fromBinDirectory = relative(bazelBinDirectory, path); + if (fromBinDirectory.startsWith('..')) { + return path; + } + + return join(bazelExecRoot, fromBinDirectory); +} From ce323c66d893f9beb53b227d2780ff2941f53140 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 27 Aug 2025 17:37:11 +0000 Subject: [PATCH 30/31] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 6 +-- pnpm-lock.yaml | 44 ++++++++-------- 10 files changed, 82 insertions(+), 82 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 36471add54a7..98205807bde2 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/branch-manager@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b1fb967c0eb..d624023053cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -103,11 +103,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -141,7 +141,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -169,13 +169,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -194,13 +194,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -214,13 +214,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -250,11 +250,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 6549bca8f21f..d122eb64ec45 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/pull-request-labeling@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/post-approval-changes@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 3e1658563b1f..8217106464a2 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/feature-request@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index d3134e87e6e2..923bfb1aa058 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 784c5bb08c06..51bb1c9787df 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/linting/licenses@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - 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 }} @@ -131,11 +131,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build E2E tests for Windows on Linux @@ -159,7 +159,7 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -187,13 +187,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -210,12 +210,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - 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.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index fa4db7f993d4..67dc3a585b41 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "fc71b572acb06a4830ef5566edb05500f822b7ad", + commit = "b34c3cb148e5cfbd9be5538cdace58b29b215afa", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a490a679071f..df2286f9c143 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "08c1e51a7b71f9802961664d04ec4d7eacfc347450547e39ff25ceabc765e26c", + "@@//package.json": "a42a8128e672378cad6de7b8a30922b4ba04e3b45b5243ef94fc09c983d28000", "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 01a8216a440c..efeeacadc0ea 100644 --- a/package.json +++ b/package.json @@ -47,15 +47,15 @@ "homepage": "https://github.com/angular/angular-cli", "devDependencies": { "@angular/animations": "20.2.1", - "@angular/cdk": "20.2.0", + "@angular/cdk": "20.2.1", "@angular/common": "20.2.1", "@angular/compiler": "20.2.1", "@angular/compiler-cli": "20.2.1", "@angular/core": "20.2.1", "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", - "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1", + "@angular/material": "20.2.1", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 533b29c47dd7..62920ce5a23e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,8 +23,8 @@ importers: specifier: 20.2.1 version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': specifier: 20.2.1 version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) @@ -44,11 +44,11 @@ importers: specifier: 20.2.1 version: 20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1) '@angular/material': - specifier: 20.2.0 - version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) + specifier: 20.2.1 + version: 20.2.1(b60312b63259c1568290f1cfc536b3a7) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -982,8 +982,8 @@ packages: '@angular/common': 20.2.1 '@angular/core': 20.2.1 - '@angular/cdk@20.2.0': - resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} + '@angular/cdk@20.2.1': + resolution: {integrity: sha512-yEPh5hr9LZW4ey/HxtaGdSBDIkNzziLo0Dr1RP8JcxhOQ2Bzv2PZ+g8jC6aPGD7NPV8FtDf0FhTEzQr+m+gBXQ==} peerDependencies: '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 @@ -1041,19 +1041,19 @@ packages: '@angular/compiler': 20.2.1 '@angular/compiler-cli': 20.2.1 - '@angular/material@20.2.0': - resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} + '@angular/material@20.2.1': + resolution: {integrity: sha512-Zv1ay/eSwO9e2xUrPKOQFSKscb0+0bhZmDwy9etQhder0FBh380iizP+PaZnJGGy87zYDmauv0fjKcDfdWCJYA==} peerDependencies: - '@angular/cdk': 20.2.0 + '@angular/cdk': 20.2.1 '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 '@angular/forms': ^20.0.0 || ^21.0.0 '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1} - version: 0.0.0-fc71b572acb06a4830ef5566edb05500f822b7ad + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7} + version: 0.0.0-b34c3cb148e5cfbd9be5538cdace58b29b215afa hasBin: true '@angular/platform-browser@20.2.1': @@ -2628,8 +2628,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@octokit/auth-app@8.0.2': - resolution: {integrity: sha512-dLTmmA9gUlqiAJZgozfOsZFfpN/OldH3xweb7lqSnngax5Rs+PfO5dDlokaBfc41H1xOtsLYV5QqR0DkBAtPmw==} + '@octokit/auth-app@8.1.0': + resolution: {integrity: sha512-6bWhyvLXqCSfHiqlwzn9pScLZ+Qnvh/681GR/UEEPCMIVwfpRDBw0cCzy3/t2Dq8B7W2X/8pBgmw6MOiyE0DXQ==} engines: {node: '>= 20'} '@octokit/auth-oauth-app@9.0.1': @@ -9086,7 +9086,7 @@ snapshots: '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) @@ -9147,9 +9147,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.0(bcb75b43408852e5fcaf27839f79fc2c)': + '@angular/material@20.2.1(b60312b63259c1568290f1cfc536b3a7)': dependencies: - '@angular/cdk': 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/cdk': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) @@ -9157,14 +9157,14 @@ 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/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) '@google/genai': 1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.8.4(@types/node@24.3.0) '@inquirer/type': 3.0.8(@types/node@24.3.0) - '@octokit/auth-app': 8.0.2 + '@octokit/auth-app': 8.1.0 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 '@octokit/graphql-schema': 15.26.0 @@ -11008,7 +11008,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@octokit/auth-app@8.0.2': + '@octokit/auth-app@8.1.0': dependencies: '@octokit/auth-oauth-app': 9.0.1 '@octokit/auth-oauth-user': 6.0.0 From 9d2794328a8ade1aece45e8338d21b9c72a2985f Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 27 Aug 2025 12:37:57 -0700 Subject: [PATCH 31/31] release: cut the v20.2.1 release --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ MODULE.bazel.lock | 2 +- package.json | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0797d1ce29d2..1c56c7a0acaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ + + +# 20.2.1 (2025-08-27) + +### @angular/cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------- | +| [3b693e09e](https://github.com/angular/angular-cli/commit/3b693e09e8148ef22031aab8f6bc70c928aabc03) | fix | correctly set default array values | + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------------ | +| [6937123a3](https://github.com/angular/angular-cli/commit/6937123a393e2ba9221962b0174056c14437a988) | fix | directly resolve karma config template in migration | +| [5d6dd4425](https://github.com/angular/angular-cli/commit/5d6dd44259a0d89098c2a0c784e726b43ce32316) | fix | prevent AI config schematic from failing when 'none' and other AI tools are selected | + +### @angular-devkit/schematics-cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------- | +| [e93919dea](https://github.com/angular/angular-cli/commit/e93919dea7df55a3aac2fa5c93c4560c50a2d749) | fix | correctly set default array values | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------- | +| [06a6ddc10](https://github.com/angular/angular-cli/commit/06a6ddc102f5dc9018ec982f6e4cf56259cc4b52) | fix | correct JS/TS file paths when running under Bazel | +| [b6816b0cb](https://github.com/angular/angular-cli/commit/b6816b0cbaf1262d7015b9d7f7fb425f53995947) | fix | ensure karma polyfills reporter factory returns a value | + + + # 20.2.0 (2025-08-20) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index df2286f9c143..cf853e8982a4 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "a42a8128e672378cad6de7b8a30922b4ba04e3b45b5243ef94fc09c983d28000", + "@@//package.json": "a0b7f44b0f9902af3d62a7f36e01cb8caf7faa85f54c3cec1f0f7e387308c68c", "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index efeeacadc0ea..cf24e14d04b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.0", + "version": "20.2.1", "private": true, "description": "Software Development Kit for Angular", "keywords": [