diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml
index 61a21883337f..f44fdf7be978 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ - uses: angular/dev-infra/github-actions/branch-manager@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bb25c7dfd9ae..ed5f4a0d1738 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Install node modules
@@ -58,14 +58,14 @@ jobs:
test:
needs: build
- runs-on: ubuntu-latest-4core
+ runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Install node modules
@@ -85,13 +85,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Run CLI E2E tests
@@ -101,11 +101,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Install node modules
@@ -139,7 +139,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Download built Windows E2E tests
@@ -167,13 +167,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Run CLI E2E tests
@@ -192,13 +192,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Run CLI E2E tests
@@ -212,13 +212,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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }}
- name: Run E2E Browser tests
@@ -248,11 +248,11 @@ jobs:
CIRCLE_BRANCH: ${{ github.ref_name }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- run: pnpm admin snapshots --verbose
env:
SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }}
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 2e3c9df19845..b4921b0868e3 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@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0
+ uses: github/codeql-action/init@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2
with:
languages: javascript-typescript
build-mode: none
config-file: .github/codeql/config.yml
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0
+ uses: github/codeql-action/analyze@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2
with:
category: '/language:javascript-typescript'
diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml
index b38ffe5d9d78..0a5c67972e8f 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ - uses: angular/dev-infra/github-actions/pull-request-labeling@3186a078ec23edea6e2f6192ed013ec57bd95f87
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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ - uses: angular/dev-infra/github-actions/post-approval-changes@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml
index 8e5a414b6bf9..23435ae8cb4a 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ - uses: angular/dev-infra/github-actions/feature-request@3186a078ec23edea6e2f6192ed013ec57bd95f87
with:
angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }}
diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml
index e013969880db..dfe002aa3e07 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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 a4740c086906..308eaa6bd73d 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/linting/licenses@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Build release targets
@@ -90,14 +90,14 @@ jobs:
test:
needs: build
- runs-on: ubuntu-latest-16core
+ runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Run module and package tests
@@ -115,13 +115,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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 }}
@@ -129,11 +129,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Build E2E tests for Windows on Linux
@@ -157,7 +157,7 @@ jobs:
runs-on: windows-2025
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Download built Windows E2E tests
@@ -185,13 +185,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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 }}
@@ -208,12 +208,12 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Install node modules
run: pnpm install --frozen-lockfile
- name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87
- name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87
- 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/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index d480bf741faf..d74147208b95 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@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0
+ uses: github/codeql-action/upload-sarif@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2
with:
sarif_file: results.sarif
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f82a223c83ae..24b4e0078ee1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,58 @@
+
+
+# 20.3.0 (2025-09-10)
+
+## Breaking Changes
+
+### @angular/ssr
+
+- The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.
+
+ Before:
+
+ ```ts
+ const bootstrap = () => bootstrapApplication(AppComponent, config);
+ ```
+
+ After:
+
+ ```ts
+ const bootstrap = (context: BootstrapContext) =>
+ bootstrapApplication(AppComponent, config, context);
+ ```
+
+### @schematics/angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------- |
+| [ef20a278d](https://github.com/angular/angular-cli/commit/ef20a278d1455b9cdffc5102b13d0b2206ef1ecb) | fix | align labels in ai-config schema |
+
+### @angular/cli
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------- |
+| [f6ad41c13](https://github.com/angular/angular-cli/commit/f6ad41c134c7ae938ccda908967e7cc863b3db16) | fix | improve bun lockfile detection and optimize lockfile checks |
+
+### @angular-devkit/build-angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------ |
+| [1a7890873](https://github.com/angular/angular-cli/commit/1a789087344aa94d061839122e6a63efbfc9c905) | fix | avoid extra tick in SSR builds |
+
+### @angular/build
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| [5d46d6ec1](https://github.com/angular/angular-cli/commit/5d46d6ec114052715a8bd17761a4f258961ad26b) | fix | preserve names in esbuild for improved debugging in dev mode |
+
+### @angular/ssr
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------- |
+| [7eacb4187](https://github.com/angular/angular-cli/commit/7eacb41878f5fdac8d40aedfcca6794b77eda5ff) | feat | introduce BootstrapContext for isolated server-side rendering |
+
+
+
# 20.2.2 (2025-09-03)
diff --git a/MODULE.bazel b/MODULE.bazel
index 4aa64fc5c28a..3329671db07c 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -39,7 +39,7 @@ git_override(
bazel_dep(name = "devinfra")
git_override(
module_name = "devinfra",
- commit = "06d3af5cfd1e122087c0acafdd7909edce4ad1d7",
+ commit = "3186a078ec23edea6e2f6192ed013ec57bd95f87",
remote = "https://github.com/angular/dev-infra.git",
)
diff --git a/constants.bzl b/constants.bzl
index 40841eeaab75..4101d657ec44 100644
--- a/constants.bzl
+++ b/constants.bzl
@@ -3,8 +3,8 @@ RELEASE_ENGINES_NODE = "^20.19.0 || ^22.12.0 || >=24.0.0"
RELEASE_ENGINES_NPM = "^6.11.0 || ^7.5.6 || >=8.0.0"
RELEASE_ENGINES_YARN = ">= 1.13.0"
-NG_PACKAGR_VERSION = "^20.2.0"
-ANGULAR_FW_VERSION = "^20.2.0"
+NG_PACKAGR_VERSION = "^20.3.0"
+ANGULAR_FW_VERSION = "^20.3.0"
ANGULAR_FW_PEER_DEP = "^20.0.0"
NG_PACKAGR_PEER_DEP = "^20.0.0"
diff --git a/goldens/public-api/angular/ssr/node/index.api.md b/goldens/public-api/angular/ssr/node/index.api.md
index 0f30fa7e99c5..eccb6396938e 100644
--- a/goldens/public-api/angular/ssr/node/index.api.md
+++ b/goldens/public-api/angular/ssr/node/index.api.md
@@ -5,6 +5,7 @@
```ts
import { ApplicationRef } from '@angular/core';
+import { BootstrapContext } from '@angular/platform-browser';
import { Http2ServerRequest } from 'node:http2';
import { Http2ServerResponse } from 'node:http2';
import { IncomingMessage } from 'node:http';
@@ -26,14 +27,14 @@ export class CommonEngine {
// @public (undocumented)
export interface CommonEngineOptions {
- bootstrap?: Type<{}> | (() => Promise);
+ bootstrap?: Type<{}> | ((context: BootstrapContext) => Promise);
enablePerformanceProfiler?: boolean;
providers?: StaticProvider[];
}
// @public (undocumented)
export interface CommonEngineRenderOptions {
- bootstrap?: Type<{}> | (() => Promise);
+ bootstrap?: Type<{}> | ((context: BootstrapContext) => Promise);
// (undocumented)
document?: string;
// (undocumented)
diff --git a/package.json b/package.json
index 3746cc8dcf45..680605ea51eb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@angular/devkit-repo",
- "version": "20.2.2",
+ "version": "20.3.0",
"private": true,
"description": "Software Development Kit for Angular",
"keywords": [
@@ -46,20 +46,20 @@
},
"homepage": "https://github.com/angular/angular-cli",
"devDependencies": {
- "@angular/animations": "20.2.3",
- "@angular/cdk": "20.2.1",
- "@angular/common": "20.2.3",
- "@angular/compiler": "20.2.3",
- "@angular/compiler-cli": "20.2.3",
- "@angular/core": "20.2.3",
- "@angular/forms": "20.2.3",
- "@angular/localize": "20.2.3",
- "@angular/material": "20.2.1",
- "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#b991414e4f3ed15d99f4331b5353499434878374",
- "@angular/platform-browser": "20.2.3",
- "@angular/platform-server": "20.2.3",
- "@angular/router": "20.2.3",
- "@angular/service-worker": "20.2.3",
+ "@angular/animations": "20.3.0",
+ "@angular/cdk": "20.2.2",
+ "@angular/common": "20.3.0",
+ "@angular/compiler": "20.3.0",
+ "@angular/compiler-cli": "20.3.0",
+ "@angular/core": "20.3.0",
+ "@angular/forms": "20.3.0",
+ "@angular/localize": "20.3.0",
+ "@angular/material": "20.2.2",
+ "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1b75cbad43a688705205725df89bf311a8d08652",
+ "@angular/platform-browser": "20.3.0",
+ "@angular/platform-server": "20.3.0",
+ "@angular/router": "20.3.0",
+ "@angular/service-worker": "20.3.0",
"@bazel/bazelisk": "1.26.0",
"@bazel/buildifier": "8.2.1",
"@eslint/compat": "1.3.2",
diff --git a/packages/angular/build/BUILD.bazel b/packages/angular/build/BUILD.bazel
index fbbe5e86ee12..1a35e4159412 100644
--- a/packages/angular/build/BUILD.bazel
+++ b/packages/angular/build/BUILD.bazel
@@ -123,6 +123,7 @@ ts_project(
"//:node_modules/@angular/compiler-cli",
"//:node_modules/@angular/core",
"//:node_modules/@angular/localize",
+ "//:node_modules/@angular/platform-browser",
"//:node_modules/@angular/platform-server",
"//:node_modules/@angular/service-worker",
"//:node_modules/@types/babel__core",
diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json
index 4fffaacd8424..fecb37dbbac7 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",
+ "ng-packagr": "20.3.0",
"postcss": "8.5.6",
"rxjs": "7.8.2",
"vitest": "3.2.4"
diff --git a/packages/angular/build/src/tools/esbuild/application-code-bundle.ts b/packages/angular/build/src/tools/esbuild/application-code-bundle.ts
index b17029f6c5e1..a19c9a496067 100644
--- a/packages/angular/build/src/tools/esbuild/application-code-bundle.ts
+++ b/packages/angular/build/src/tools/esbuild/application-code-bundle.ts
@@ -607,6 +607,9 @@ function getEsBuildCommonOptions(options: NormalizedApplicationBuildOptions): Bu
}
}
+ const minifySyntax = optimizationOptions.scripts;
+ const minifyIdentifiers = minifySyntax && allowMangle;
+
return {
absWorkingDir: workspaceRoot,
format: 'esm',
@@ -618,9 +621,10 @@ function getEsBuildCommonOptions(options: NormalizedApplicationBuildOptions): Bu
metafile: true,
legalComments: options.extractLicenses ? 'none' : 'eof',
logLevel: options.verbose && !jsonLogs ? 'debug' : 'silent',
- minifyIdentifiers: optimizationOptions.scripts && allowMangle,
- minifySyntax: optimizationOptions.scripts,
- minifyWhitespace: optimizationOptions.scripts,
+ keepNames: !minifyIdentifiers,
+ minifyIdentifiers,
+ minifySyntax,
+ minifyWhitespace: minifySyntax,
pure: ['forwardRef'],
outdir: workspaceRoot,
outExtension: outExtension ? { '.js': `.${outExtension}` } : undefined,
@@ -637,7 +641,7 @@ function getEsBuildCommonOptions(options: NormalizedApplicationBuildOptions): Bu
// Only set to false when script optimizations are enabled. It should not be set to true because
// Angular turns `ngDevMode` into an object for development debugging purposes when not defined
// which a constant true value would break.
- ...(optimizationOptions.scripts ? { 'ngDevMode': 'false' } : undefined),
+ ...(minifySyntax ? { 'ngDevMode': 'false' } : undefined),
'ngJitMode': jit ? 'true' : 'false',
'ngServerMode': 'false',
'ngHmrMode': options.templateUpdates ? 'true' : 'false',
diff --git a/packages/angular/build/src/tools/vite/utils.ts b/packages/angular/build/src/tools/vite/utils.ts
index 2322eb210bec..048386a4dc4d 100644
--- a/packages/angular/build/src/tools/vite/utils.ts
+++ b/packages/angular/build/src/tools/vite/utils.ts
@@ -98,6 +98,7 @@ export function getDepOptimizationConfig({
esbuildOptions: {
// Set esbuild supported targets.
target,
+ keepNames: true,
supported: getFeatureSupport(target, zoneless),
plugins,
loader,
diff --git a/packages/angular/build/src/utils/server-rendering/load-esm-from-memory.ts b/packages/angular/build/src/utils/server-rendering/load-esm-from-memory.ts
index 1d19a07e61de..87ca9928a86f 100644
--- a/packages/angular/build/src/utils/server-rendering/load-esm-from-memory.ts
+++ b/packages/angular/build/src/utils/server-rendering/load-esm-from-memory.ts
@@ -7,6 +7,7 @@
*/
import type { ApplicationRef, Type } from '@angular/core';
+import type { BootstrapContext } from '@angular/platform-browser';
import type { ɵextractRoutesAndCreateRouteTree, ɵgetOrCreateAngularServerApp } from '@angular/ssr';
import { assertIsError } from '../error';
import { loadEsmModule } from '../load-esm';
@@ -15,7 +16,7 @@ import { loadEsmModule } from '../load-esm';
* Represents the exports available from the main server bundle.
*/
interface MainServerBundleExports {
- default: (() => Promise) | Type;
+ default: ((context: BootstrapContext) => Promise) | Type;
ɵextractRoutesAndCreateRouteTree: typeof ɵextractRoutesAndCreateRouteTree;
ɵgetOrCreateAngularServerApp: typeof ɵgetOrCreateAngularServerApp;
}
diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts
index d95205f95184..63316fe2c67f 100644
--- a/packages/angular/cli/src/utilities/package-manager.ts
+++ b/packages/angular/cli/src/utilities/package-manager.ts
@@ -8,13 +8,25 @@
import { isJsonObject, json } from '@angular-devkit/core';
import { execSync, spawn } from 'node:child_process';
-import { existsSync, promises as fs, realpathSync, rmSync } from 'node:fs';
+import { promises as fs, readdirSync, realpathSync, rmSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { PackageManager } from '../../lib/config/workspace-schema';
import { AngularWorkspace, getProjectByCwd } from './config';
import { memoize } from './memoize';
+/**
+ * A map of package managers to their corresponding lockfile names.
+ */
+const LOCKFILE_NAMES: Readonly<
+ Record, string | readonly string[]>
+> = {
+ [PackageManager.Yarn]: 'yarn.lock',
+ [PackageManager.Pnpm]: 'pnpm-lock.yaml',
+ [PackageManager.Bun]: ['bun.lockb', 'bun.lock'],
+ [PackageManager.Npm]: 'package-lock.json',
+};
+
interface PackageManagerOptions {
saveDev: string;
install: string;
@@ -29,7 +41,13 @@ export interface PackageManagerUtilsContext {
root: string;
}
+/**
+ * Utilities for interacting with various package managers.
+ */
export class PackageManagerUtils {
+ /**
+ * @param context The context for the package manager utilities, including workspace and global configuration.
+ */
constructor(private readonly context: PackageManagerUtilsContext) {}
/** Get the package manager name. */
@@ -216,10 +234,12 @@ export class PackageManagerUtils {
return packageManager;
}
- const hasNpmLock = this.hasLockfile(PackageManager.Npm);
- const hasYarnLock = this.hasLockfile(PackageManager.Yarn);
- const hasPnpmLock = this.hasLockfile(PackageManager.Pnpm);
- const hasBunLock = this.hasLockfile(PackageManager.Bun);
+ const filesInRoot = readdirSync(this.context.root);
+
+ const hasNpmLock = this.hasLockfile(PackageManager.Npm, filesInRoot);
+ const hasYarnLock = this.hasLockfile(PackageManager.Yarn, filesInRoot);
+ const hasPnpmLock = this.hasLockfile(PackageManager.Pnpm, filesInRoot);
+ const hasBunLock = this.hasLockfile(PackageManager.Bun, filesInRoot);
// PERF NOTE: `this.getVersion` spawns the package a the child_process which can take around ~300ms at times.
// Therefore, we should only call this method when needed. IE: don't call `this.getVersion(PackageManager.Pnpm)` unless truly needed.
@@ -265,25 +285,21 @@ export class PackageManagerUtils {
return PackageManager.Npm;
}
- private hasLockfile(packageManager: PackageManager): boolean {
- let lockfileName: string;
- switch (packageManager) {
- case PackageManager.Yarn:
- lockfileName = 'yarn.lock';
- break;
- case PackageManager.Pnpm:
- lockfileName = 'pnpm-lock.yaml';
- break;
- case PackageManager.Bun:
- lockfileName = 'bun.lockb';
- break;
- case PackageManager.Npm:
- default:
- lockfileName = 'package-lock.json';
- break;
- }
-
- return existsSync(join(this.context.root, lockfileName));
+ /**
+ * Checks if a lockfile for a specific package manager exists in the root directory.
+ * @param packageManager The package manager to check for.
+ * @param filesInRoot An array of file names in the root directory.
+ * @returns True if the lockfile exists, false otherwise.
+ */
+ private hasLockfile(
+ packageManager: Exclude,
+ filesInRoot: string[],
+ ): boolean {
+ const lockfiles = LOCKFILE_NAMES[packageManager];
+
+ return typeof lockfiles === 'string'
+ ? filesInRoot.includes(lockfiles)
+ : lockfiles.some((lockfile) => filesInRoot.includes(lockfile));
}
private getConfiguredPackageManager(): PackageManager | undefined {
diff --git a/packages/angular/ssr/BUILD.bazel b/packages/angular/ssr/BUILD.bazel
index 2694830e3ff4..2218488daeb6 100644
--- a/packages/angular/ssr/BUILD.bazel
+++ b/packages/angular/ssr/BUILD.bazel
@@ -30,6 +30,7 @@ ts_project(
deps = [
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
+ "//:node_modules/@angular/platform-browser",
"//:node_modules/@angular/platform-server",
"//:node_modules/@angular/router",
"//:node_modules/tslib",
diff --git a/packages/angular/ssr/node/src/common-engine/common-engine.ts b/packages/angular/ssr/node/src/common-engine/common-engine.ts
index 63c3f6075a23..079c1187696b 100644
--- a/packages/angular/ssr/node/src/common-engine/common-engine.ts
+++ b/packages/angular/ssr/node/src/common-engine/common-engine.ts
@@ -7,6 +7,7 @@
*/
import { ApplicationRef, StaticProvider, Type } from '@angular/core';
+import { BootstrapContext } from '@angular/platform-browser';
import { renderApplication, renderModule, ɵSERVER_CONTEXT } from '@angular/platform-server';
import * as fs from 'node:fs';
import { dirname, join, normalize, resolve } from 'node:path';
@@ -23,7 +24,7 @@ const SSG_MARKER_REGEXP = /ng-server-context=["']\w*\|?ssg\|?\w*["']/;
export interface CommonEngineOptions {
/** A method that when invoked returns a promise that returns an `ApplicationRef` instance once resolved or an NgModule. */
- bootstrap?: Type<{}> | (() => Promise);
+ bootstrap?: Type<{}> | ((context: BootstrapContext) => Promise);
/** A set of platform level providers for all requests. */
providers?: StaticProvider[];
@@ -34,7 +35,7 @@ export interface CommonEngineOptions {
export interface CommonEngineRenderOptions {
/** A method that when invoked returns a promise that returns an `ApplicationRef` instance once resolved or an NgModule. */
- bootstrap?: Type<{}> | (() => Promise);
+ bootstrap?: Type<{}> | ((context: BootstrapContext) => Promise);
/** A set of platform level providers for the current request. */
providers?: StaticProvider[];
@@ -197,7 +198,9 @@ async function exists(path: fs.PathLike): Promise {
}
}
-function isBootstrapFn(value: unknown): value is () => Promise {
+function isBootstrapFn(
+ value: unknown,
+): value is (context: BootstrapContext) => Promise {
// We can differentiate between a module and a bootstrap function by reading compiler-generated `ɵmod` static property:
return typeof value === 'function' && !('ɵmod' in value);
}
diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json
index 79dc4f537f31..d2e0b666b7de 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.3",
- "@angular/compiler": "20.2.3",
- "@angular/core": "20.2.3",
- "@angular/platform-browser": "20.2.3",
- "@angular/platform-server": "20.2.3",
- "@angular/router": "20.2.3",
+ "@angular/common": "20.3.0",
+ "@angular/compiler": "20.3.0",
+ "@angular/core": "20.3.0",
+ "@angular/platform-browser": "20.3.0",
+ "@angular/platform-server": "20.3.0",
+ "@angular/router": "20.3.0",
"@schematics/angular": "workspace:*"
},
"sideEffects": false,
diff --git a/packages/angular/ssr/src/manifest.ts b/packages/angular/ssr/src/manifest.ts
index d0f9032ec8b1..8fc415546033 100644
--- a/packages/angular/ssr/src/manifest.ts
+++ b/packages/angular/ssr/src/manifest.ts
@@ -6,6 +6,7 @@
* found in the LICENSE file at https://angular.dev/license
*/
+import type { BootstrapContext } from '@angular/platform-browser';
import type { SerializableRouteTreeNode } from './routes/route-tree';
import { AngularBootstrap } from './utils/ng';
diff --git a/packages/angular/ssr/src/routes/ng-routes.ts b/packages/angular/ssr/src/routes/ng-routes.ts
index 7c2db5275023..a7ca0d137d88 100644
--- a/packages/angular/ssr/src/routes/ng-routes.ts
+++ b/packages/angular/ssr/src/routes/ng-routes.ts
@@ -634,7 +634,7 @@ export async function getRoutesFromAngularRouterConfig(
const moduleRef = await platformRef.bootstrapModule(bootstrap);
applicationRef = moduleRef.injector.get(ApplicationRef);
} else {
- applicationRef = await bootstrap();
+ applicationRef = await bootstrap({ platformRef });
}
const injector = applicationRef.injector;
diff --git a/packages/angular/ssr/src/routes/route-config.ts b/packages/angular/ssr/src/routes/route-config.ts
index bcd791a7c5c4..f328cee4becc 100644
--- a/packages/angular/ssr/src/routes/route-config.ts
+++ b/packages/angular/ssr/src/routes/route-config.ts
@@ -356,20 +356,23 @@ export function withAppShell(
* when using the `bootstrapApplication` function:
*
* ```ts
- * import { bootstrapApplication } from '@angular/platform-browser';
+ * import { bootstrapApplication, BootstrapContext } from '@angular/platform-browser';
* import { provideServerRendering, withRoutes, withAppShell } from '@angular/ssr';
* import { AppComponent } from './app/app.component';
* import { SERVER_ROUTES } from './app/app.server.routes';
* import { AppShellComponent } from './app/app-shell.component';
*
- * bootstrapApplication(AppComponent, {
- * providers: [
- * provideServerRendering(
- * withRoutes(SERVER_ROUTES),
- * withAppShell(AppShellComponent)
- * )
- * ]
- * });
+ * const bootstrap = (context: BootstrapContext) =>
+ * bootstrapApplication(AppComponent, {
+ * providers: [
+ * provideServerRendering(
+ * withRoutes(SERVER_ROUTES),
+ * withAppShell(AppShellComponent),
+ * ),
+ * ],
+ * }, context);
+ *
+ * export default bootstrap;
* ```
* @see {@link withRoutes} configures server-side routing
* @see {@link withAppShell} configures the application shell
diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts
index b92aa51d1d84..94abcb5ade28 100644
--- a/packages/angular/ssr/src/utils/ng.ts
+++ b/packages/angular/ssr/src/utils/ng.ts
@@ -14,6 +14,7 @@ import {
type Type,
ɵConsole,
} from '@angular/core';
+import { BootstrapContext } from '@angular/platform-browser';
import {
INITIAL_CONFIG,
ɵSERVER_CONTEXT as SERVER_CONTEXT,
@@ -31,7 +32,9 @@ import { joinUrlParts, stripIndexHtmlFromURL } from './url';
* - A reference to an Angular component or module (`Type`) that serves as the root of the application.
* - A function that returns a `Promise`, which resolves with the root application reference.
*/
-export type AngularBootstrap = Type | (() => Promise);
+export type AngularBootstrap =
+ | Type
+ | ((context: BootstrapContext) => Promise);
/**
* Renders an Angular application or module to an HTML string.
@@ -90,7 +93,7 @@ export async function renderAngular(
const moduleRef = await platformRef.bootstrapModule(bootstrap);
applicationRef = moduleRef.injector.get(ApplicationRef);
} else {
- applicationRef = await bootstrap();
+ applicationRef = await bootstrap({ platformRef });
}
// Block until application is stable.
diff --git a/packages/angular/ssr/test/testing-utils.ts b/packages/angular/ssr/test/testing-utils.ts
index 9f1cd076e33e..d14dd9f34a46 100644
--- a/packages/angular/ssr/test/testing-utils.ts
+++ b/packages/angular/ssr/test/testing-utils.ts
@@ -90,15 +90,19 @@ export function setAngularAppTestingManifest(
`,
},
},
- bootstrap: async () => () => {
- return bootstrapApplication(rootComponent, {
- providers: [
- provideZonelessChangeDetection(),
- provideRouter(routes),
- provideServerRendering(withRoutes(serverRoutes)),
- ...extraProviders,
- ],
- });
+ bootstrap: async () => (context) => {
+ return bootstrapApplication(
+ rootComponent,
+ {
+ providers: [
+ provideZonelessChangeDetection(),
+ provideRouter(routes),
+ provideServerRendering(withRoutes(serverRoutes)),
+ ...extraProviders,
+ ],
+ },
+ context,
+ );
},
});
}
diff --git a/packages/angular_devkit/build_angular/BUILD.bazel b/packages/angular_devkit/build_angular/BUILD.bazel
index f7e0530a4105..459197eaf149 100644
--- a/packages/angular_devkit/build_angular/BUILD.bazel
+++ b/packages/angular_devkit/build_angular/BUILD.bazel
@@ -184,6 +184,7 @@ ts_project(
"//:node_modules/@angular/compiler-cli",
"//:node_modules/@angular/core",
"//:node_modules/@angular/localize",
+ "//:node_modules/@angular/platform-browser",
"//:node_modules/@angular/platform-server",
"//:node_modules/@angular/service-worker",
"//:node_modules/@types/babel__core",
diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json
index 82d869b5360c..7d581aef8934 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",
+ "ng-packagr": "20.3.0",
"undici": "7.13.0"
},
"peerDependencies": {
diff --git a/packages/angular_devkit/build_angular/src/builders/app-shell/render-worker.ts b/packages/angular_devkit/build_angular/src/builders/app-shell/render-worker.ts
index 2955edb4c6d0..21a39698b5a0 100644
--- a/packages/angular_devkit/build_angular/src/builders/app-shell/render-worker.ts
+++ b/packages/angular_devkit/build_angular/src/builders/app-shell/render-worker.ts
@@ -7,6 +7,7 @@
*/
import type { ApplicationRef, StaticProvider, Type } from '@angular/core';
+import type { BootstrapContext } from '@angular/platform-browser';
import type { renderApplication, renderModule, ɵSERVER_CONTEXT } from '@angular/platform-server';
import assert from 'node:assert';
import { workerData } from 'node:worker_threads';
@@ -33,7 +34,7 @@ interface ServerBundleExports {
renderApplication?: typeof renderApplication;
/** Standalone application bootstrapping function. */
- default?: () => Promise;
+ default?: (context: BootstrapContext) => Promise;
}
/**
@@ -121,7 +122,9 @@ async function render({ serverBundlePath, document, url }: RenderRequest): Promi
return Promise.race([renderAppPromise, renderingTimeout]).finally(() => clearTimeout(timer));
}
-function isBootstrapFn(value: unknown): value is () => Promise {
+function isBootstrapFn(
+ value: unknown,
+): value is (context: BootstrapContext) => Promise {
// We can differentiate between a module and a bootstrap function by reading compiler-generated `ɵmod` static property:
return typeof value === 'function' && !('ɵmod' in value);
}
diff --git a/packages/angular_devkit/build_angular/src/builders/prerender/render-worker.ts b/packages/angular_devkit/build_angular/src/builders/prerender/render-worker.ts
index afa255378b84..e651b6f84344 100644
--- a/packages/angular_devkit/build_angular/src/builders/prerender/render-worker.ts
+++ b/packages/angular_devkit/build_angular/src/builders/prerender/render-worker.ts
@@ -7,6 +7,7 @@
*/
import type { ApplicationRef, StaticProvider, Type } from '@angular/core';
+import type { BootstrapContext } from '@angular/platform-browser';
import type { renderApplication, renderModule, ɵSERVER_CONTEXT } from '@angular/platform-server';
import assert from 'node:assert';
import * as fs from 'node:fs';
@@ -42,7 +43,7 @@ interface ServerBundleExports {
renderApplication?: typeof renderApplication;
/** Standalone application bootstrapping function. */
- default?: (() => Promise) | Type;
+ default?: ((context: BootstrapContext) => Promise) | Type;
}
/**
@@ -148,7 +149,9 @@ async function render({
return result;
}
-function isBootstrapFn(value: unknown): value is () => Promise {
+function isBootstrapFn(
+ value: unknown,
+): value is (context: BootstrapContext) => Promise {
// We can differentiate between a module and a bootstrap function by reading compiler-generated `ɵmod` static property:
return typeof value === 'function' && !('ɵmod' in value);
}
diff --git a/packages/angular_devkit/build_angular/src/builders/prerender/routes-extractor-worker.ts b/packages/angular_devkit/build_angular/src/builders/prerender/routes-extractor-worker.ts
index 8161ef1b82cd..ef324ba1dea6 100644
--- a/packages/angular_devkit/build_angular/src/builders/prerender/routes-extractor-worker.ts
+++ b/packages/angular_devkit/build_angular/src/builders/prerender/routes-extractor-worker.ts
@@ -7,6 +7,7 @@
*/
import type { ApplicationRef, Type } from '@angular/core';
+import type { BootstrapContext } from '@angular/platform-browser';
import type { ɵgetRoutesFromAngularRouterConfig } from '@angular/ssr';
import assert from 'node:assert';
import * as fs from 'node:fs';
@@ -25,7 +26,7 @@ interface ServerBundleExports {
AppServerModule?: Type;
/** Standalone application bootstrapping function. */
- default?: (() => Promise) | Type;
+ default?: ((context: BootstrapContext) => Promise) | Type;
/** Method to extract routes from the router config. */
ɵgetRoutesFromAngularRouterConfig: typeof ɵgetRoutesFromAngularRouterConfig;
diff --git a/packages/angular_devkit/build_angular/src/builders/server/index.ts b/packages/angular_devkit/build_angular/src/builders/server/index.ts
index 68eaed5fd6f2..3bdab8a55977 100644
--- a/packages/angular_devkit/build_angular/src/builders/server/index.ts
+++ b/packages/angular_devkit/build_angular/src/builders/server/index.ts
@@ -219,6 +219,7 @@ async function initialize(
{
plugins: [
new webpack.DefinePlugin({
+ 'ngJitMode': false,
'ngServerMode': true,
}),
],
diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json
index 29ba7c8a259a..a8ebd17973c7 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.3",
- "@angular/compiler-cli": "20.2.3",
+ "@angular/compiler": "20.3.0",
+ "@angular/compiler-cli": "20.3.0",
"typescript": "5.9.2",
"webpack": "5.101.2"
}
diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json
index 3f46fbc6dede..cf89108f2cd0 100644
--- a/packages/schematics/angular/ai-config/schema.json
+++ b/packages/schematics/angular/ai-config/schema.json
@@ -20,27 +20,27 @@
},
{
"value": "claude",
- "label": "Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]"
+ "label": "Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]"
},
{
"value": "cursor",
- "label": "Cursor [ https://docs.cursor.com/en/context/rules ]"
+ "label": "Cursor [ https://docs.cursor.com/en/context/rules ]"
},
{
"value": "gemini",
- "label": "Gemini [ https://ai.google.dev/gemini-api/docs ]"
+ "label": "Gemini [ https://ai.google.dev/gemini-api/docs ]"
},
{
"value": "copilot",
- "label": "GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization#_custom-instructions ]"
+ "label": "GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization ]"
},
{
"value": "jetbrains",
- "label": "JetBrains AI Assistant [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]"
+ "label": "JetBrains AI [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]"
},
{
"value": "windsurf",
- "label": "Windsurf [ https://docs.windsurf.com/windsurf/cascade/memories#rules ]"
+ "label": "Windsurf [ https://docs.windsurf.com/windsurf/cascade/memories#rules ]"
}
]
},
diff --git a/packages/schematics/angular/server/files/application-builder/standalone-src/main.server.ts.template b/packages/schematics/angular/server/files/application-builder/standalone-src/main.server.ts.template
index bc0b6ba59758..cbe62e1fd0ad 100644
--- a/packages/schematics/angular/server/files/application-builder/standalone-src/main.server.ts.template
+++ b/packages/schematics/angular/server/files/application-builder/standalone-src/main.server.ts.template
@@ -1,7 +1,8 @@
-import { bootstrapApplication } from '@angular/platform-browser';
+import { BootstrapContext, bootstrapApplication } from '@angular/platform-browser';
import { <%= appComponentName %> } from '<%= appComponentPath %>';
import { config } from './app/app.config.server';
-const bootstrap = () => bootstrapApplication(<%= appComponentName %>, config);
+const bootstrap = (context: BootstrapContext) =>
+ bootstrapApplication(<%= appComponentName %>, config, context);
export default bootstrap;
diff --git a/packages/schematics/angular/server/files/server-builder/standalone-src/main.server.ts.template b/packages/schematics/angular/server/files/server-builder/standalone-src/main.server.ts.template
index bc0b6ba59758..cbe62e1fd0ad 100644
--- a/packages/schematics/angular/server/files/server-builder/standalone-src/main.server.ts.template
+++ b/packages/schematics/angular/server/files/server-builder/standalone-src/main.server.ts.template
@@ -1,7 +1,8 @@
-import { bootstrapApplication } from '@angular/platform-browser';
+import { BootstrapContext, bootstrapApplication } from '@angular/platform-browser';
import { <%= appComponentName %> } from '<%= appComponentPath %>';
import { config } from './app/app.config.server';
-const bootstrap = () => bootstrapApplication(<%= appComponentName %>, config);
+const bootstrap = (context: BootstrapContext) =>
+ bootstrapApplication(<%= appComponentName %>, config, context);
export default bootstrap;
diff --git a/packages/schematics/angular/server/index_spec.ts b/packages/schematics/angular/server/index_spec.ts
index de6046e38c00..2d86b83ddfff 100644
--- a/packages/schematics/angular/server/index_spec.ts
+++ b/packages/schematics/angular/server/index_spec.ts
@@ -201,7 +201,7 @@ describe('Server Schematic', () => {
const filePath = '/projects/bar/src/main.server.ts';
expect(tree.exists(filePath)).toBeTrue();
const contents = tree.readContent(filePath);
- expect(contents).toContain(`bootstrapApplication(App, config)`);
+ expect(contents).toContain(`bootstrapApplication(App, config, context)`);
});
it('should account for renamed app component', async () => {
@@ -212,7 +212,7 @@ describe('Server Schematic', () => {
import { appConfig } from './app/app.config';
import { MyCustomApp } from './foo/bar/baz/app.foo';
- bootstrapApplication(MyCustomApp, appConfig)
+ bootstrapApplication(MyCustomApp, appConfig, context)
.catch((err) => console.error(err));
`,
);
@@ -222,7 +222,7 @@ describe('Server Schematic', () => {
expect(tree.exists(filePath)).toBeTrue();
const contents = tree.readContent(filePath);
expect(contents).toContain(`import { MyCustomApp } from './foo/bar/baz/app.foo';`);
- expect(contents).toContain(`bootstrapApplication(MyCustomApp, config)`);
+ expect(contents).toContain(`bootstrapApplication(MyCustomApp, config, context)`);
});
it('should account for renamed app component that is aliased within the main file', async () => {
@@ -243,7 +243,7 @@ describe('Server Schematic', () => {
expect(tree.exists(filePath)).toBeTrue();
const contents = tree.readContent(filePath);
expect(contents).toContain(`import { MyCustomApp } from './foo/bar/baz/app.foo';`);
- expect(contents).toContain(`bootstrapApplication(MyCustomApp, config)`);
+ expect(contents).toContain(`bootstrapApplication(MyCustomApp, config, context)`);
});
it('should create server app config file', async () => {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fc301efb79fc..79398028cd4b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,47 +20,47 @@ importers:
built: true
devDependencies:
'@angular/animations':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ specifier: 20.3.0
+ version: 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
'@angular/cdk':
- specifier: 20.2.1
- version: 20.2.1(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ specifier: 20.2.2
+ version: 20.2.2(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
'@angular/common':
- specifier: 20.2.3
- version: 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
'@angular/compiler':
- specifier: 20.2.3
- version: 20.2.3
+ specifier: 20.3.0
+ version: 20.3.0
'@angular/compiler-cli':
- specifier: 20.2.3
- version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)
'@angular/core':
- specifier: 20.2.3
- version: 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
'@angular/forms':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
'@angular/localize':
- specifier: 20.2.3
- version: 20.2.3(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(@angular/compiler@20.2.3)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2))(@angular/compiler@20.3.0)
'@angular/material':
- specifier: 20.2.1
- version: 20.2.1(db7b32723760b0ee941b26d324534a22)
+ specifier: 20.2.2
+ version: 20.2.2(458e7ea89830b69817139b360ad854ab)
'@angular/ng-dev':
- specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#b991414e4f3ed15d99f4331b5353499434878374
- version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b991414e4f3ed15d99f4331b5353499434878374(@modelcontextprotocol/sdk@1.17.3)
+ specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1b75cbad43a688705205725df89bf311a8d08652
+ version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652(@modelcontextprotocol/sdk@1.17.3)
'@angular/platform-browser':
- specifier: 20.2.3
- version: 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ specifier: 20.3.0
+ version: 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
'@angular/platform-server':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.3)(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.0)(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
'@angular/router':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
'@angular/service-worker':
- specifier: 20.2.3
- version: 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.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
- version: 20.2.0(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler-cli@20.3.0(@angular/compiler@20.3.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.3
- version: 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
'@angular/compiler':
- specifier: 20.2.3
- version: 20.2.3
+ specifier: 20.3.0
+ version: 20.3.0
'@angular/core':
- specifier: 20.2.3
- version: 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
'@angular/platform-browser':
- specifier: 20.2.3
- version: 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ specifier: 20.3.0
+ version: 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
'@angular/platform-server':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.3)(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.0)(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
'@angular/router':
- specifier: 20.2.3
- version: 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.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
- version: 20.2.0(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler-cli@20.3.0(@angular/compiler@20.3.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.3
- version: 20.2.3
+ specifier: 20.3.0
+ version: 20.3.0
'@angular/compiler-cli':
- specifier: 20.2.3
- version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)
+ specifier: 20.3.0
+ version: 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)
typescript:
specifier: 5.9.2
version: 5.9.2
@@ -975,47 +975,46 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@angular/animations@20.2.3':
- resolution: {integrity: sha512-cyON3oVfaotz8d8DHP3uheC/XDG2gJD8aiyuG/SEAZ2X1S/tAHdVetESbDZM830lLdi+kB/3GBrMbWCCpMWD7Q==}
+ '@angular/animations@20.3.0':
+ resolution: {integrity: sha512-rCojVsJHaReDfSB4lwcWYJAfbkFXQmcdivdN5m1NavuSlKpWoLw4fLkxkcuOXDjUEwNSb45hRI4ixcwrcuQtmw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.3
- '@angular/core': 20.2.3
+ '@angular/core': 20.3.0
- '@angular/cdk@20.2.1':
- resolution: {integrity: sha512-yEPh5hr9LZW4ey/HxtaGdSBDIkNzziLo0Dr1RP8JcxhOQ2Bzv2PZ+g8jC6aPGD7NPV8FtDf0FhTEzQr+m+gBXQ==}
+ '@angular/cdk@20.2.2':
+ resolution: {integrity: sha512-jLvIMmFI8zoi6vAu1Aszua59GmhqBOtsVfkwLUGg5Hi86DI/inJr9BznNX2EKDtaulYMGZCmDgsltXQXeqP5Lg==}
peerDependencies:
'@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.3':
- resolution: {integrity: sha512-QLffWL8asy2oG7p3jvoNmx9s1V1WuJAm6JmQ1S8J3AN/BxumCJan49Nj8rctP8J4uwJDPQV48hqbXUdl1v7CDg==}
+ '@angular/common@20.3.0':
+ resolution: {integrity: sha512-Il0HqdRdrmI8ufLXd49EYaa/BPqfiSqe5uuKrDxhkAdbRXwCXWsxbO/n8AwilwWn3CKLOCrEXQYKwbcFW0nYQQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/core': 20.2.3
+ '@angular/core': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
- '@angular/compiler-cli@20.2.3':
- resolution: {integrity: sha512-adLyPXmKbH8VZJCyOraaha+RPTdAjEBRTqwZ5YkjkViTMMANFkuj1w3pDwQsG3LFknRJ99aym+9neGINeAaI7A==}
+ '@angular/compiler-cli@20.3.0':
+ resolution: {integrity: sha512-umnZzzKw9RqDVkotYIyupJiKXQpU8knehMUBT1G3QwdeHppC+d/opxISYTkQtY/4IUAsZFLMukWIr82as0DSmw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
hasBin: true
peerDependencies:
- '@angular/compiler': 20.2.3
+ '@angular/compiler': 20.3.0
typescript: 5.9.2
peerDependenciesMeta:
typescript:
optional: true
- '@angular/compiler@20.2.3':
- resolution: {integrity: sha512-vYGDluko8zAIWhQmKijhcGO0tzanwGONDRgbJ01mCqUsQV+XwmDgUUDZKrUY9uve0wxxM3Xvo4/BjEpGpeG75w==}
+ '@angular/compiler@20.3.0':
+ resolution: {integrity: sha512-DvGDusjsDhxIX+nDzihSCGo81Fa8y94KB/bh24eyPwJWV6b0OkawFSvVwzxx8prV0UnNkCN1S/UoZXmtVZGJ4A==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
- '@angular/core@20.2.3':
- resolution: {integrity: sha512-pFMfg11X8SNNZHcLa+wy4y+eAN3FApt+wPzaxkaXaJ64c+tyHcrPNLotoWgE0jmiw8Idn4gGjKAL/WC0uw5dQA==}
+ '@angular/core@20.3.0':
+ resolution: {integrity: sha512-4uH2TAMm1nXqQ9lcZyyNkjcdQ0Fjcf9Hh0HYrhMOEV6GAUHvM2I8Vr2dSQ40p/UKLEfe9+cpZ78EPocqPQCG6A==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/compiler': 20.2.3
+ '@angular/compiler': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
zone.js: ~0.15.0
peerDependenciesMeta:
@@ -1024,74 +1023,74 @@ packages:
zone.js:
optional: true
- '@angular/forms@20.2.3':
- resolution: {integrity: sha512-efMn/Hnspg91SzRTm69WpyGq0dgbCtWqUOrR0iZXTR/oDlJw9F/y/nrST36tOBwRNT0QQ2iU5z43iJY1Rl1Bng==}
+ '@angular/forms@20.3.0':
+ resolution: {integrity: sha512-/KGCZUskk8imxz2e47CKe5Ykh3eqEDop0b9YUkZTvJ/dY/cdFK89RAK2xUvOlyUr2mkcByzdzyOhHaM9XEaELg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.3
- '@angular/core': 20.2.3
- '@angular/platform-browser': 20.2.3
+ '@angular/common': 20.3.0
+ '@angular/core': 20.3.0
+ '@angular/platform-browser': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
- '@angular/localize@20.2.3':
- resolution: {integrity: sha512-+r7VbxuaOwUuvC1xPfuNpJSbwv4+LOUouVZhBq5sp2qYrKkVw2QZaIbd6uPTE1NWbu7rGwSGVw4rTx4LvA3fYw==}
+ '@angular/localize@20.3.0':
+ resolution: {integrity: sha512-0qkBPYA5g5KcrJpNxbCqxBiY/Q8RCb3ct5EBLUwj9Og2zTz4PQ04xzRW0B+FwF4XZ0g2kJ0FNmyM8GjUBut1yg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
hasBin: true
peerDependencies:
- '@angular/compiler': 20.2.3
- '@angular/compiler-cli': 20.2.3
+ '@angular/compiler': 20.3.0
+ '@angular/compiler-cli': 20.3.0
- '@angular/material@20.2.1':
- resolution: {integrity: sha512-Zv1ay/eSwO9e2xUrPKOQFSKscb0+0bhZmDwy9etQhder0FBh380iizP+PaZnJGGy87zYDmauv0fjKcDfdWCJYA==}
+ '@angular/material@20.2.2':
+ resolution: {integrity: sha512-ovLk6h6XIw3qtSjp2bSqFn7ANYvWOIh2zTrRPdAB78siOpqs11d8YdyD4LUEuUrcZoInNgK7AMJsfldDkHwhnA==}
peerDependencies:
- '@angular/cdk': 20.2.1
+ '@angular/cdk': 20.2.2
'@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/b991414e4f3ed15d99f4331b5353499434878374':
- resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b991414e4f3ed15d99f4331b5353499434878374}
- version: 0.0.0-06d3af5cfd1e122087c0acafdd7909edce4ad1d7
+ '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652':
+ resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652}
+ version: 0.0.0-3186a078ec23edea6e2f6192ed013ec57bd95f87
hasBin: true
- '@angular/platform-browser@20.2.3':
- resolution: {integrity: sha512-oNaRqcGUve+E/CwR9fJb8uern5rb7qNOis1bZRdPXq5rHKaWgDCxUPkoqxRi0EytorntuYsWYPUPW3ul4Ea9tw==}
+ '@angular/platform-browser@20.3.0':
+ resolution: {integrity: sha512-/KsgfxDwP7/KXGrLLSyg4+Xd8HxmHi5dVCu+xHfa3QjzVIvvZfWZLxQj7guRlDtg/mz+t0/OSKvSUZzOAfVzGQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/animations': 20.2.3
- '@angular/common': 20.2.3
- '@angular/core': 20.2.3
+ '@angular/animations': 20.3.0
+ '@angular/common': 20.3.0
+ '@angular/core': 20.3.0
peerDependenciesMeta:
'@angular/animations':
optional: true
- '@angular/platform-server@20.2.3':
- resolution: {integrity: sha512-KswW/6KX4Av8WdiJLIVElqi4f7RIcIrcnkRRYrVm2UUHEpH+W94LkMMN9ybACmGSArg0j5DlfyJtotZefwFtzQ==}
+ '@angular/platform-server@20.3.0':
+ resolution: {integrity: sha512-ixPyu3JEY3sgyvUdCqRbaZZA9M6KWGLZoiJPN4IszwcwCFUp3E5XOZ7mvSLzR+ZUYUml+z6ehtSPg2PM+e+CEQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.3
- '@angular/compiler': 20.2.3
- '@angular/core': 20.2.3
- '@angular/platform-browser': 20.2.3
+ '@angular/common': 20.3.0
+ '@angular/compiler': 20.3.0
+ '@angular/core': 20.3.0
+ '@angular/platform-browser': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
- '@angular/router@20.2.3':
- resolution: {integrity: sha512-r8yGJcxHPfeIHZOoyCxN2H4nMgBD/k4TVTFaq8MHf5ryy1iLzayIMPJTFaZe7xpwlJJuBYEjBrYfUN38fYKWgA==}
+ '@angular/router@20.3.0':
+ resolution: {integrity: sha512-JshumajvPCMztz1+7r/l5tRxFL3cn2jCpr5szdc5hESkpytY4050hedd09GogL1UoIyZAjhyYLhSlMnvrgjHBA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.3
- '@angular/core': 20.2.3
- '@angular/platform-browser': 20.2.3
+ '@angular/common': 20.3.0
+ '@angular/core': 20.3.0
+ '@angular/platform-browser': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
- '@angular/service-worker@20.2.3':
- resolution: {integrity: sha512-h3f44QBCEuC7FoKT0FH+PDW4VFqdsImn6PuGjXFEjMe7D8gcV9HK8aeYMCcvAJetWSqaG5hdDHO4gNoZgQV9Zg==}
+ '@angular/service-worker@20.3.0':
+ resolution: {integrity: sha512-Z/vpsypGbn2Gani1FZrHr89PpHVq5crS+mAkv3ZvzPRdpUSSlifBRv43VpBBiH/b0bTADnrn5aohJFyWKwNdFg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
hasBin: true
peerDependencies:
- '@angular/core': 20.2.3
+ '@angular/core': 20.3.0
rxjs: ^6.5.3 || ^7.4.0
'@asamuzakjp/css-color@3.2.0':
@@ -2123,8 +2122,8 @@ packages:
resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==}
engines: {node: '>=18'}
- '@google/genai@1.16.0':
- resolution: {integrity: sha512-hdTYu39QgDFxv+FB6BK2zi4UIJGWhx2iPc0pHQ0C5Q/RCi+m+4gsryIzTGO+riqWcUA8/WGYp6hpqckdOBNysw==}
+ '@google/genai@1.17.0':
+ resolution: {integrity: sha512-r/OZWN9D8WvYrte3bcKPoLODrZ+2TjfxHm5OOyVHUbdFYIp1C4yJaXX4+sCS8I/+CbN9PxLjU5zm1cgmS7qz+A==}
engines: {node: '>=20.0.0'}
peerDependencies:
'@modelcontextprotocol/sdk': ^1.11.4
@@ -3429,6 +3428,9 @@ packages:
'@types/semver@7.7.0':
resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==}
+ '@types/semver@7.7.1':
+ resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
+
'@types/send@0.17.5':
resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
@@ -6141,6 +6143,9 @@ packages:
jasmine-core@4.6.1:
resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==}
+ jasmine-core@5.10.0:
+ resolution: {integrity: sha512-MrChbWV5LBo+EaeKwTM1eZ6oYSz1brvFExnRafraEkJkbJ9evbUxABhnIgGQimhpMxhg+BD6QmOvb/e3NXsNdg==}
+
jasmine-core@5.9.0:
resolution: {integrity: sha512-OMUvF1iI6+gSRYOhMrH4QYothVLN9C3EJ6wm4g7zLJlnaTl8zbaPOr0bTw70l7QxkoM7sVFOWo83u9B2Fe2Zng==}
@@ -6154,6 +6159,10 @@ packages:
resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==}
hasBin: true
+ jasmine@5.10.0:
+ resolution: {integrity: sha512-v4FojO8cXQdx15mJXovGhjJOvyIcVf7AC+H0ZahnfLk52vUbwuLxjVgbikc95yLmgwKQsFT47/FGQ3dOrWVxtQ==}
+ hasBin: true
+
jasmine@5.9.0:
resolution: {integrity: sha512-SspK51QMnuC92z5zpF4kOkWN+MyZZDOBv8zgzlMAYvMD0UoGwcq5yYaDe1mrpN7wXZ2CFXh5y8Ua2ugwE4OmXQ==}
hasBin: true
@@ -6773,12 +6782,12 @@ packages:
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
engines: {node: '>= 0.4.0'}
- ng-packagr@20.2.0:
- resolution: {integrity: sha512-U8kv9O5hD9ojKlSke44A2NIH5sH0EmQXtQTtMLLrpn7y4LUeCQgTi5t8KsDXoMyCmBKMhDJzioa3R22pOy5vFg==}
+ ng-packagr@20.3.0:
+ resolution: {integrity: sha512-hwPZNeV/6C3pWojK70AHxe6uk1rz2bzoe+WdH+GIWouUcyXrjYQjOFyLfOGD0ia9D+yWVzjsi4CKVK/dQFDQ6Q==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
hasBin: true
peerDependencies:
- '@angular/compiler-cli': ^20.0.0 || ^20.2.0-rc
+ '@angular/compiler-cli': ^20.0.0
tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
tslib: ^2.3.0
typescript: 5.9.2
@@ -9096,29 +9105,28 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.30
- '@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))':
+ '@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
tslib: 2.8.1
- '@angular/cdk@20.2.1(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
+ '@angular/cdk@20.2.2(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.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.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
+ '@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
dependencies:
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)':
+ '@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)':
dependencies:
- '@angular/compiler': 20.2.3
+ '@angular/compiler': 20.3.0
'@babel/core': 7.28.3
'@jridgewell/sourcemap-codec': 1.5.5
chokidar: 4.0.3
@@ -9132,30 +9140,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@angular/compiler@20.2.3':
+ '@angular/compiler@20.3.0':
dependencies:
tslib: 2.8.1
- '@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)':
+ '@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)':
dependencies:
rxjs: 7.8.2
tslib: 2.8.1
optionalDependencies:
- '@angular/compiler': 20.2.3
+ '@angular/compiler': 20.3.0
zone.js: 0.15.1
- '@angular/forms@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
+ '@angular/forms@20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/localize@20.2.3(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(@angular/compiler@20.2.3)':
+ '@angular/localize@20.3.0(@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2))(@angular/compiler@20.3.0)':
dependencies:
- '@angular/compiler': 20.2.3
- '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)
+ '@angular/compiler': 20.3.0
+ '@angular/compiler-cli': 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)
'@babel/core': 7.28.3
'@types/babel__core': 7.20.5
tinyglobby: 0.2.14
@@ -9163,21 +9171,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@angular/material@20.2.1(db7b32723760b0ee941b26d324534a22)':
+ '@angular/material@20.2.2(458e7ea89830b69817139b360ad854ab)':
dependencies:
- '@angular/cdk': 20.2.1(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/forms': 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
- '@angular/platform-browser': 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/cdk': 20.2.2(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/forms': 20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ '@angular/platform-browser': 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.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/b991414e4f3ed15d99f4331b5353499434878374(@modelcontextprotocol/sdk@1.17.3)':
+ '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652(@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.16.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)
+ '@google/genai': 1.17.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.1.0
@@ -9200,7 +9208,7 @@ snapshots:
'@types/jasmine': 5.1.9
'@types/minimatch': 6.0.0
'@types/node': 24.3.0
- '@types/semver': 7.7.0
+ '@types/semver': 7.7.1
'@types/supports-color': 10.0.0
'@types/which': 3.0.4
'@types/yargs': 17.0.33
@@ -9217,8 +9225,8 @@ snapshots:
firebase: 12.2.1
folder-hash: 4.1.1(supports-color@10.2.0)
git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0)
- jasmine: 5.9.0
- jasmine-core: 5.9.0
+ jasmine: 5.10.0
+ jasmine-core: 5.10.0
jasmine-reporters: 2.5.2
jsonc-parser: 3.3.1
minimatch: 10.0.3
@@ -9236,35 +9244,35 @@ snapshots:
- '@modelcontextprotocol/sdk'
- '@react-native-async-storage/async-storage'
- '@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))':
+ '@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
tslib: 2.8.1
optionalDependencies:
- '@angular/animations': 20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/animations': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
- '@angular/platform-server@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.3)(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
+ '@angular/platform-server@20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.0)(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/compiler': 20.2.3
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/compiler': 20.3.0
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.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.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
+ '@angular/router@20.3.0(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.3(@angular/animations@20.2.3(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/common': 20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.3.0(@angular/animations@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/service-worker@20.2.3(@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
+ '@angular/service-worker@20.3.0(@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
dependencies:
- '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)
rxjs: 7.8.2
tslib: 2.8.1
@@ -9954,7 +9962,7 @@ snapshots:
'@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0)':
dependencies:
- '@types/semver': 7.7.0
+ '@types/semver': 7.7.1
semver: 7.7.2
optionalDependencies:
conventional-commits-filter: 5.0.0
@@ -10530,7 +10538,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@google/genai@1.16.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)':
+ '@google/genai@1.17.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.2.0)
ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -11812,6 +11820,8 @@ snapshots:
'@types/semver@7.7.0': {}
+ '@types/semver@7.7.1': {}
+
'@types/send@0.17.5':
dependencies:
'@types/mime': 1.3.5
@@ -15144,6 +15154,8 @@ snapshots:
jasmine-core@4.6.1: {}
+ jasmine-core@5.10.0: {}
+
jasmine-core@5.9.0: {}
jasmine-reporters@2.5.2:
@@ -15161,6 +15173,11 @@ snapshots:
glob: 7.2.3
jasmine-core: 2.8.0
+ jasmine@5.10.0:
+ dependencies:
+ glob: 10.4.5
+ jasmine-core: 5.10.0
+
jasmine@5.9.0:
dependencies:
glob: 10.4.5
@@ -15857,10 +15874,10 @@ snapshots:
netmask@2.0.2: {}
- ng-packagr@20.2.0(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2):
+ ng-packagr@20.3.0(@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2):
dependencies:
'@ampproject/remapping': 2.3.0
- '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)
+ '@angular/compiler-cli': 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)
'@rollup/plugin-json': 6.1.0(rollup@4.46.2)
'@rollup/wasm-node': 4.50.0
ajv: 8.17.1
diff --git a/tests/legacy-cli/e2e/tests/build/prerender/error-with-sourcemaps.ts b/tests/legacy-cli/e2e/tests/build/prerender/error-with-sourcemaps.ts
index 8e45499f0021..6420f7a6e5c4 100644
--- a/tests/legacy-cli/e2e/tests/build/prerender/error-with-sourcemaps.ts
+++ b/tests/legacy-cli/e2e/tests/build/prerender/error-with-sourcemaps.ts
@@ -48,6 +48,6 @@ export default async function () {
message,
// When babel is used it will add names to the sourcemap and `constructor` will be used in the stack trace.
// This will currently only happen if AOT and script optimizations are set which enables advanced optimizations.
- /window is not defined[.\s\S]*(?:constructor|_App) \(.*app\.ts\:\d+:\d+\)/,
+ /window is not defined[.\s\S]*(?:constructor|App) \(.*app\.ts\:\d+:\d+\)/,
);
}