From 406cfa67ae4e1dff17ea04fb6c2f945e0ddf91c1 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:59:51 +0000 Subject: [PATCH 001/228] release: cut the v20.2.0-rc.0 release --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 605cddd12017..88c8a2df713d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ + + +# 20.2.0-rc.0 (2025-08-13) + +### @angular/cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------- | +| [b4de9a1bf](https://github.com/angular/angular-cli/commit/b4de9a1bf50a35404fb79eb3f120faafd0ce825a) | feat | add --experimental-tool option to mcp command | +| [755ba70fd](https://github.com/angular/angular-cli/commit/755ba70fd7ef38793d15797ba402020c375c3295) | feat | add --local-only option to mcp command | +| [59d7ef343](https://github.com/angular/angular-cli/commit/59d7ef343b6f1feea37a019935578c560d3d5e41) | feat | add --read-only option to mcp command | +| [4e92eb6f1](https://github.com/angular/angular-cli/commit/4e92eb6f17cb30259bc8e8d1979bbd9989bc5ad0) | feat | add modernize tool to the MCP server | + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------- | +| [2e3cfd598](https://github.com/angular/angular-cli/commit/2e3cfd598c9366d0036a52cd18024317b33e6fca) | feat | add migration to remove default Karma configurations | +| [d80dae276](https://github.com/angular/angular-cli/commit/d80dae276e9554c13e0c37640d0db8acafc9d48b) | feat | add schematics to generate ai context files. | +| [6a78ef0ce](https://github.com/angular/angular-cli/commit/6a78ef0cec4875be76d9241499db67ddac6e14df) | fix | add extra prettier config | +| [e46d9c54f](https://github.com/angular/angular-cli/commit/e46d9c54f07e32dc05e29a3533ce1bd063ff9f61) | fix | correct configure the `typeSeparator` in the library schematic | +| [b017f84fd](https://github.com/angular/angular-cli/commit/b017f84fdaf36bc0fcad2241846665c73b52b6d8) | fix | improve coverage directory handling for Karma configuration comparisons | + + + # 20.1.6 (2025-08-13) @@ -4222,6 +4247,7 @@ Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr Wysocki ```scss @import 'font-awesome/scss/font-awesome'; ``` + - By default the CLI will use Sass modern API, While not recommended, users can still opt to use legacy API by setting `NG_BUILD_LEGACY_SASS=1`. - Internally the Angular CLI now always set the TypeScript `target` to `ES2022` and `useDefineForClassFields` to `false` unless the target is set to `ES2022` or later in the TypeScript configuration. To control ECMA version and features use the Browerslist configuration. diff --git a/package.json b/package.json index e1790e8c7e32..c8283adc4061 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.0-next.3", + "version": "20.2.0-rc.0", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From ffe6fb916d496da1c6c20942f6e6b05a679b0f7d Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:43:06 +0000 Subject: [PATCH 002/228] fix(@schematics/angular): allow AI config prompt to be skipped without selecting a value With this change, we allow the AI config prompt to be skipped by pressing "ENTER" without selecting "None" and it will default to "None". (cherry picked from commit 3a7b9fbfd10deed019b7b2cd9beddd48041c51c1) --- packages/schematics/angular/ai-config/schema.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json index 8f2d40f95d85..def28602e311 100644 --- a/packages/schematics/angular/ai-config/schema.json +++ b/packages/schematics/angular/ai-config/schema.json @@ -12,7 +12,6 @@ "default": "none", "x-prompt": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai", "description": "Specifies which AI tools to generate configuration files for. These file are used to improve the outputs of AI tools by following the best practices.", - "minItems": 1, "items": { "type": "string", "enum": ["none", "gemini", "copilot", "claude", "cursor", "jetbrains", "windsurf"] @@ -26,8 +25,7 @@ "const": "none" } } - }, - "required": ["tool"] + } }, "then": { "properties": { From 8ba6b0bcc8c8087875d14a0aefc6b7b52f39ce2a Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:31:59 -0400 Subject: [PATCH 003/228] fix(@angular/cli): use correct path for MCP get_best_practices tool The package internal path for the Angular best practices markdown file has been corrected to the new location following a previous refactoring. (cherry picked from commit eb4278555fee2663b8d01a82f1fef54ef19b8933) --- .../src/commands/mcp/tools/best-practices.ts | 2 +- .../e2e/tests/mcp/best-practices.ts | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 tests/legacy-cli/e2e/tests/mcp/best-practices.ts diff --git a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts index 40c0ec8cf464..b5b207ea3b08 100644 --- a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts +++ b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts @@ -26,7 +26,7 @@ export const BEST_PRACTICES_TOOL = declareTool({ return async () => { bestPracticesText ??= await readFile( - path.join(__dirname, '..', 'instructions', 'best-practices.md'), + path.join(__dirname, '..', 'resources', 'best-practices.md'), 'utf-8', ); diff --git a/tests/legacy-cli/e2e/tests/mcp/best-practices.ts b/tests/legacy-cli/e2e/tests/mcp/best-practices.ts new file mode 100644 index 000000000000..55736c63795b --- /dev/null +++ b/tests/legacy-cli/e2e/tests/mcp/best-practices.ts @@ -0,0 +1,43 @@ +import { chdir } from 'node:process'; +import { exec, ProcessOutput, silentNpm } from '../../utils/process'; +import assert from 'node:assert/strict'; + +const MCP_INSPECTOR_PACKAGE_NAME = '@modelcontextprotocol/inspector-cli'; +const MCP_INSPECTOR_PACKAGE_VERSION = '0.16.2'; +const MCP_INSPECTOR_COMMAND_NAME = 'mcp-inspector-cli'; + +async function runInspector(...args: string[]): Promise { + const result = await exec( + MCP_INSPECTOR_COMMAND_NAME, + '--cli', + 'npx', + '--no', + '@angular/cli', + 'mcp', + ...args, + ); + + return result; +} + +export default async function () { + await silentNpm( + 'install', + '--ignore-scripts', + '-g', + `${MCP_INSPECTOR_PACKAGE_NAME}@${MCP_INSPECTOR_PACKAGE_VERSION}`, + ); + + // Ensure `get_best_practices` returns the markdown content + const { stdout: stdoutInsideWorkspace } = await runInspector( + '--method', + 'tools/call', + '--tool-name', + 'get_best_practices', + ); + + assert.match( + stdoutInsideWorkspace, + /You are an expert in TypeScript, Angular, and scalable web application development./, + ); +} From b5452e7cba0eb94f78aeba93e1f74722879068ab Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:07:41 -0400 Subject: [PATCH 004/228] refactor(@angular/build): remove manual Node.js types for getCompileCacheDir The manual type declaration is no longer needed with newer versions of the Node.js types (`@types/node`). (cherry picked from commit ff6b923d7b2f5cd1e836b4252efbba5ee287e4ab) --- packages/angular/build/src/typings.d.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/angular/build/src/typings.d.ts b/packages/angular/build/src/typings.d.ts index 6296581de448..a219622dd7b4 100644 --- a/packages/angular/build/src/typings.d.ts +++ b/packages/angular/build/src/typings.d.ts @@ -17,10 +17,3 @@ declare module 'esbuild' { export * from 'esbuild-wasm'; } - -/** - * Augment the Node.js module builtin types to support the v22.8+ compile cache functions - */ -declare module 'node:module' { - function getCompileCacheDir(): string | undefined; -} From b105b4d3a0ad443e372c29c5a2949e9a3be8fdbf Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 14 Aug 2025 05:05:56 +0000 Subject: [PATCH 005/228] build: update dependency @inquirer/prompts to v7.8.2 See associated pull request for more information. (cherry picked from commit 41f652010c0aea3228f9d89ad3a2d3d85ec538ef) --- packages/angular/cli/package.json | 2 +- .../schematics_cli/package.json | 2 +- pnpm-lock.yaml | 76 ++++++++++++++++--- 3 files changed, 66 insertions(+), 14 deletions(-) diff --git a/packages/angular/cli/package.json b/packages/angular/cli/package.json index 29234e9a3e15..df20947a3711 100644 --- a/packages/angular/cli/package.json +++ b/packages/angular/cli/package.json @@ -25,7 +25,7 @@ "@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER", "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "@angular-devkit/schematics": "workspace:0.0.0-PLACEHOLDER", - "@inquirer/prompts": "7.8.1", + "@inquirer/prompts": "7.8.2", "@listr2/prompt-adapter-inquirer": "3.0.1", "@modelcontextprotocol/sdk": "1.17.2", "@schematics/angular": "workspace:0.0.0-PLACEHOLDER", diff --git a/packages/angular_devkit/schematics_cli/package.json b/packages/angular_devkit/schematics_cli/package.json index 9b5ffd910894..36a09d89399f 100644 --- a/packages/angular_devkit/schematics_cli/package.json +++ b/packages/angular_devkit/schematics_cli/package.json @@ -18,7 +18,7 @@ "dependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "@angular-devkit/schematics": "workspace:0.0.0-PLACEHOLDER", - "@inquirer/prompts": "7.8.1", + "@inquirer/prompts": "7.8.2", "ansi-colors": "4.1.3", "yargs-parser": "22.0.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb2f38a5a8f2..5da8b8502ac6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -466,11 +466,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/schematics '@inquirer/prompts': - specifier: 7.8.1 - version: 7.8.1(@types/node@24.2.0) + specifier: 7.8.2 + version: 7.8.2(@types/node@24.2.0) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.1(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.2 version: 1.17.2 @@ -844,8 +844,8 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../schematics '@inquirer/prompts': - specifier: 7.8.1 - version: 7.8.1(@types/node@24.2.0) + specifier: 7.8.2 + version: 7.8.2(@types/node@24.2.0) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -2170,6 +2170,15 @@ packages: '@types/node': optional: true + '@inquirer/checkbox@4.2.1': + resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@5.1.14': resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} engines: {node: '>=18'} @@ -2197,6 +2206,15 @@ packages: '@types/node': optional: true + '@inquirer/editor@4.2.17': + resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/expand@4.0.17': resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} engines: {node: '>=18'} @@ -2212,6 +2230,15 @@ packages: peerDependencies: '@types/node': '>=18' + '@inquirer/external-editor@1.0.1': + resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/figures@1.0.13': resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} @@ -2252,8 +2279,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.1': - resolution: {integrity: sha512-LpBPeIpyCF1H3C7SK/QxJQG4iV1/SRmJdymfcul8PuwtVhD0JI1CSwqmd83VgRgt1QEsDojQYFSXJSgo81PVMw==} + '@inquirer/prompts@7.8.2': + resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -10537,6 +10564,16 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 + '@inquirer/checkbox@4.2.1(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.2.0) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + '@inquirer/confirm@5.1.14(@types/node@24.2.0)': dependencies: '@inquirer/core': 10.1.15(@types/node@24.2.0) @@ -10565,6 +10602,14 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 + '@inquirer/editor@4.2.17(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/external-editor': 1.0.1(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + optionalDependencies: + '@types/node': 24.2.0 + '@inquirer/expand@4.0.17(@types/node@24.2.0)': dependencies: '@inquirer/core': 10.1.15(@types/node@24.2.0) @@ -10579,6 +10624,13 @@ snapshots: chardet: 2.1.0 iconv-lite: 0.6.3 + '@inquirer/external-editor@1.0.1(@types/node@24.2.0)': + dependencies: + chardet: 2.1.0 + iconv-lite: 0.6.3 + optionalDependencies: + '@types/node': 24.2.0 + '@inquirer/figures@1.0.13': {} '@inquirer/input@4.2.1(@types/node@24.2.0)': @@ -10618,11 +10670,11 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 - '@inquirer/prompts@7.8.1(@types/node@24.2.0)': + '@inquirer/prompts@7.8.2(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.0(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.16(@types/node@24.2.0) + '@inquirer/editor': 4.2.17(@types/node@24.2.0) '@inquirer/expand': 4.0.17(@types/node@24.2.0) '@inquirer/input': 4.2.1(@types/node@24.2.0) '@inquirer/number': 3.0.17(@types/node@24.2.0) @@ -10747,9 +10799,9 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.1(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.1(@types/node@24.2.0) + '@inquirer/prompts': 7.8.2(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) listr2: 9.0.1 transitivePeerDependencies: From 201d433ec4bd0ce7b6ca4134e29d809fa69f179e Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 10:15:32 +0000 Subject: [PATCH 006/228] ci: re-enable windows CI This commit fixes and re-enables windows CI. Upstream fixes: - https://github.com/devversion/rules_browsers/pull/18 - https://github.com/angular/dev-infra/pull/2966 (cherry picked from commit 646bccacdc67e6156370ba963b3163a71e52f52d) --- .../windows-bazel-test/action.yml | 15 +++++--- .github/workflows/pr.yml | 35 +++++++++---------- WORKSPACE | 2 +- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index cb72d4febd61..878e729ac668 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,16 +18,15 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/setup-wsl@66a623888d17a9f2f9f4558fad5b07e78dde525e with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' - - name: Installing pnpm (in WSL) - run: npm install -g pnpm@9 - shell: wsl-bash {0} - - name: Install node modules in WSL (re-using from previous install/cache restore) run: | + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + cd ${{steps.init_wsl.outputs.repo_path}} pnpm install --frozen-lockfile shell: wsl-bash {0} @@ -35,6 +34,9 @@ runs: - name: Build test binary for Windows (inside WSL) shell: wsl-bash {0} run: | + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + cd ${{steps.init_wsl.outputs.repo_path}} pnpm bazel \ build --config=e2e //tests/legacy-cli:${{inputs.test_target_name}} --platforms=tools:windows_x64 @@ -54,6 +56,9 @@ runs: - name: Convert symlinks for Windows host shell: wsl-bash {0} run: | + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + cd ${{steps.init_wsl.outputs.repo_path}} runfiles_dir="/mnt/c/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 2adae6939dbb..33abf4ad87f0 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -127,24 +127,23 @@ jobs: - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} - # Temporarily disabled due to https://github.com/Vampire/setup-wsl/issues/76. - # e2e-windows-subset: - # needs: build - # runs-on: windows-2025 - # steps: - # - name: Initialize environment - # uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@59c46175bf3a8870c0c2ceb9de1eb741fd50d415 - # - name: Setup Bazel - # uses: angular/dev-infra/github-actions/bazel/setup@59c46175bf3a8870c0c2ceb9de1eb741fd50d415 - # - name: Setup Bazel RBE - # uses: angular/dev-infra/github-actions/bazel/configure-remote@59c46175bf3a8870c0c2ceb9de1eb741fd50d415 - # with: - # allow_windows_rbe: true - # - name: Run CLI E2E tests - # uses: ./.github/shared-actions/windows-bazel-test - # with: - # test_target_name: e2e_node22 - # test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" + e2e-windows-subset: + needs: build + runs-on: windows-2025 + steps: + - name: Initialize environment + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - name: Setup Bazel + uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - name: Setup Bazel RBE + uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + with: + allow_windows_rbe: true + - name: Run CLI E2E tests + uses: ./.github/shared-actions/windows-bazel-test + with: + test_target_name: e2e_node22 + test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" e2e-package-managers: needs: build diff --git a/WORKSPACE b/WORKSPACE index bdd6ac8c8c37..6364ff2ac3cb 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -281,7 +281,7 @@ http_archive( git_repository( name = "rules_browsers", - commit = "56ef8007ea07cd1916429bca8bb523433b0e9cdc", + commit = "c9a70ad79258e2ffc498075623f9f974920a4025", remote = "https://github.com/devversion/rules_browsers.git", ) From 6fe112592766798f3718fc11a722d66808f9dcb1 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 11:53:41 +0000 Subject: [PATCH 007/228] refactor: await `silentNpm` This is causing Windows CI to fail to the `silentNpm` being terminated. (cherry picked from commit 1ae0fb7a6da3a1b82904aa1f5662f8465e40b5d5) --- .../e2e/tests/mcp/registers-tools.ts | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts b/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts index e2c9461d6a26..a1271b35b64c 100644 --- a/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts +++ b/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts @@ -29,19 +29,21 @@ export default async function () { ); // Ensure 'list_projects' is registered when inside an Angular workspace - const { stdout: stdoutInsideWorkspace } = await runInspector('--method', 'tools/list'); + try { + const { stdout: stdoutInsideWorkspace } = await runInspector('--method', 'tools/list'); - assert.match(stdoutInsideWorkspace, /"list_projects"/); - assert.match(stdoutInsideWorkspace, /"get_best_practices"/); - assert.match(stdoutInsideWorkspace, /"search_documentation"/); + assert.match(stdoutInsideWorkspace, /"list_projects"/); + assert.match(stdoutInsideWorkspace, /"get_best_practices"/); + assert.match(stdoutInsideWorkspace, /"search_documentation"/); - chdir('..'); + chdir('..'); - const { stdout: stdoutOutsideWorkspace } = await runInspector('--method', 'tools/list'); + const { stdout: stdoutOutsideWorkspace } = await runInspector('--method', 'tools/list'); - assert.doesNotMatch(stdoutOutsideWorkspace, /"list_projects"/); - assert.match(stdoutOutsideWorkspace, /"get_best_practices"/); - assert.match(stdoutInsideWorkspace, /"search_documentation"/); - - silentNpm('uninstall', '-g', MCP_INSPECTOR_PACKAGE_NAME); + assert.doesNotMatch(stdoutOutsideWorkspace, /"list_projects"/); + assert.match(stdoutOutsideWorkspace, /"get_best_practices"/); + assert.match(stdoutInsideWorkspace, /"search_documentation"/); + } finally { + await silentNpm('uninstall', '-g', MCP_INSPECTOR_PACKAGE_NAME); + } } From 3482633ff4972593ae8c0a334a0286674fe25907 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 12:04:09 +0000 Subject: [PATCH 008/228] build: update `dev-infra` action SHA This reduces the post cleanup step timings (cherry picked from commit 7ad46c3eceaa6b0245653db0ee615f6f17662686) --- .github/shared-actions/windows-bazel-test/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 878e729ac668..e92931a1cf80 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@66a623888d17a9f2f9f4558fad5b07e78dde525e + uses: angular/dev-infra/github-actions/setup-wsl@16e272eaa88efe5891e7e6c8e13b956ae7e5a73e with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' From 9d7fb475a220fa1ef858240d7d389b9360f31876 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 13:36:34 +0000 Subject: [PATCH 009/228] build: add retry-delay for `accept4 failed 110` This error is still being unencountered sometimes, to try to mitigate this we add a retry delay and also increase the number of retries. ``` Could not convert symlinks: Error: Command failed: /mnt/c/Windows/system32/cmd.exe /c mklink /d "_main\node_modules\.aspect_rules_js\finalhandler@2.1.0\node_modules\encodeurl" "..\..\encodeurl@2.0.0\node_modules\encodeurl" <3>WSL (22769 - ) ERROR: UtilAcceptVsock:271: accept4 failed 110 ``` (cherry picked from commit dfc334c40d7fa16675df008842a007a78fdc8b9e) --- scripts/windows-testing/convert-symlinks.mjs | 22 ++++++++++++++----- scripts/windows-testing/parallel-executor.mjs | 8 +++++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs index a170e350dae2..ece925f8f84b 100644 --- a/scripts/windows-testing/convert-symlinks.mjs +++ b/scripts/windows-testing/convert-symlinks.mjs @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + /** * @fileoverview Script that takes a directory and converts all its Unix symlinks * to relative Windows-compatible symlinks. This is necessary because when building @@ -13,14 +21,12 @@ * - https://pnpm.io/symlinked-node-modules-structure. */ -import path from 'node:path'; -import fs from 'node:fs/promises'; import childProcess from 'node:child_process'; +import fs from 'node:fs/promises'; +import path from 'node:path'; const [rootDir, cmdPath] = process.argv.slice(2); -// GitHub actions can set this environment variable when pressing the "re-run" button. -const debug = process.env.ACTIONS_STEP_DEBUG === 'true'; const skipDirectories = [ // Modules that we don't need and would unnecessarily slow-down this. '_windows_amd64/bin/nodejs/node_modules', @@ -87,7 +93,7 @@ async function transformDir(p) { await Promise.all(directoriesToVisit.map((d) => transformDir(d))); } -function exec(cmd, maxRetries = 3) { +function exec(cmd, maxRetries = 5, retryDelay = 200) { return new Promise((resolve, reject) => { childProcess.exec(cmd, { cwd: rootDir }, (error) => { if (error !== null) { @@ -99,7 +105,11 @@ function exec(cmd, maxRetries = 3) { error.stderr !== undefined && error.stderr.includes(`accept4 failed 110`) ) { - resolve(exec(cmd, maxRetries - 1)); + // Add a small delay before the retry + setTimeout(() => { + resolve(exec(cmd, maxRetries - 1, retryDelay)); + }, retryDelay); + return; } diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs index b5c496578277..a416d5c90def 100644 --- a/scripts/windows-testing/parallel-executor.mjs +++ b/scripts/windows-testing/parallel-executor.mjs @@ -1,3 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import * as child_process from 'node:child_process'; import path from 'node:path'; import { stripVTControlCharacters } from 'node:util'; From b72a0b3446de51a017e7eea8e678a11a00416146 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:06:10 +0000 Subject: [PATCH 010/228] test: update e2e update test to use angular 18 Angular 17 is no longer supported. (cherry picked from commit 6fc2dcac8a01143ee280fbbe38195c4beeb43a06) --- .../e2e/assets/17.0-project/package.json | 38 ------------------ .../assets/17.0-project/src/app/app.config.ts | 8 ---- .../assets/17.0-project/src/assets/.gitkeep | 0 .../e2e/assets/17.0-project/tsconfig.app.json | 14 ------- .../assets/17.0-project/tsconfig.spec.json | 14 ------- .../.editorconfig | 1 + .../{17.0-project => 18.0-project}/.gitignore | 0 .../{17.0-project => 18.0-project}/README.md | 6 +-- .../angular.json | 33 +++++++-------- .../e2e/assets/18.0-project/package.json | 38 ++++++++++++++++++ .../src => 18.0-project/public}/favicon.ico | Bin .../src/app/app.component.css | 0 .../src/app/app.component.html | 9 +---- .../src/app/app.component.spec.ts | 6 +-- .../src/app/app.component.ts | 2 +- .../assets/18.0-project/src/app/app.config.ts | 8 ++++ .../src/app/app.routes.ts | 0 .../src/index.html | 2 +- .../src/main.ts | 0 .../src/styles.css | 0 .../e2e/assets/18.0-project/tsconfig.app.json | 15 +++++++ .../tsconfig.json | 7 ++-- .../assets/18.0-project/tsconfig.spec.json | 15 +++++++ .../tests/update/update-multiple-versions.ts | 2 +- tests/legacy-cli/e2e/tests/update/update.ts | 14 +++---- 25 files changed, 116 insertions(+), 116 deletions(-) delete mode 100644 tests/legacy-cli/e2e/assets/17.0-project/package.json delete mode 100644 tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts delete mode 100644 tests/legacy-cli/e2e/assets/17.0-project/src/assets/.gitkeep delete mode 100644 tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json delete mode 100644 tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/.editorconfig (87%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/.gitignore (100%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/README.md (92%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/angular.json (77%) create mode 100644 tests/legacy-cli/e2e/assets/18.0-project/package.json rename tests/legacy-cli/e2e/assets/{17.0-project/src => 18.0-project/public}/favicon.ico (100%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/app/app.component.css (100%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/app/app.component.html (98%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/app/app.component.spec.ts (85%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/app/app.component.ts (90%) create mode 100644 tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/app/app.routes.ts (100%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/index.html (88%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/main.ts (100%) rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/src/styles.css (100%) create mode 100644 tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json rename tests/legacy-cli/e2e/assets/{17.0-project => 18.0-project}/tsconfig.json (70%) create mode 100644 tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json diff --git a/tests/legacy-cli/e2e/assets/17.0-project/package.json b/tests/legacy-cli/e2e/assets/17.0-project/package.json deleted file mode 100644 index c0f3c7b59156..000000000000 --- a/tests/legacy-cli/e2e/assets/17.0-project/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "seventeen-project", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^17.3.0", - "@angular/common": "^17.3.0", - "@angular/compiler": "^17.3.0", - "@angular/core": "^17.3.0", - "@angular/forms": "^17.3.0", - "@angular/platform-browser": "^17.3.0", - "@angular/platform-browser-dynamic": "^17.3.0", - "@angular/router": "^17.3.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.3" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^17.3.12", - "@angular/cli": "^17.3.12", - "@angular/compiler-cli": "^17.3.0", - "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.1.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.4.2" - } -} diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts b/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts deleted file mode 100644 index 6c6ef6035f3d..000000000000 --- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ApplicationConfig } from '@angular/core'; -import { provideRouter } from '@angular/router'; - -import { routes } from './app.routes'; - -export const appConfig: ApplicationConfig = { - providers: [provideRouter(routes)] -}; diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/assets/.gitkeep b/tests/legacy-cli/e2e/assets/17.0-project/src/assets/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json b/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json deleted file mode 100644 index 374cc9d294aa..000000000000 --- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json +++ /dev/null @@ -1,14 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [] - }, - "files": [ - "src/main.ts" - ], - "include": [ - "src/**/*.d.ts" - ] -} diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json b/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json deleted file mode 100644 index be7e9da76f7b..000000000000 --- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json +++ /dev/null @@ -1,14 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} diff --git a/tests/legacy-cli/e2e/assets/17.0-project/.editorconfig b/tests/legacy-cli/e2e/assets/18.0-project/.editorconfig similarity index 87% rename from tests/legacy-cli/e2e/assets/17.0-project/.editorconfig rename to tests/legacy-cli/e2e/assets/18.0-project/.editorconfig index 59d9a3a3e73f..f166060da1cb 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/.editorconfig +++ b/tests/legacy-cli/e2e/assets/18.0-project/.editorconfig @@ -10,6 +10,7 @@ trim_trailing_whitespace = true [*.ts] quote_type = single +ij_typescript_use_double_quotes = false [*.md] max_line_length = off diff --git a/tests/legacy-cli/e2e/assets/17.0-project/.gitignore b/tests/legacy-cli/e2e/assets/18.0-project/.gitignore similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/.gitignore rename to tests/legacy-cli/e2e/assets/18.0-project/.gitignore diff --git a/tests/legacy-cli/e2e/assets/17.0-project/README.md b/tests/legacy-cli/e2e/assets/18.0-project/README.md similarity index 92% rename from tests/legacy-cli/e2e/assets/17.0-project/README.md rename to tests/legacy-cli/e2e/assets/18.0-project/README.md index 5418a46b83c0..60097ece05c4 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/README.md +++ b/tests/legacy-cli/e2e/assets/18.0-project/README.md @@ -1,6 +1,6 @@ -# SeventeenProject +# EighteenProject -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.12. +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.20. ## Development server @@ -24,4 +24,4 @@ Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To u ## Further help -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/tests/legacy-cli/e2e/assets/17.0-project/angular.json b/tests/legacy-cli/e2e/assets/18.0-project/angular.json similarity index 77% rename from tests/legacy-cli/e2e/assets/17.0-project/angular.json rename to tests/legacy-cli/e2e/assets/18.0-project/angular.json index 4e6c604d0031..70c98c792416 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/angular.json +++ b/tests/legacy-cli/e2e/assets/18.0-project/angular.json @@ -3,7 +3,7 @@ "version": 1, "newProjectRoot": "projects", "projects": { - "seventeen-project": { + "eighteen-project": { "projectType": "application", "schematics": {}, "root": "", @@ -13,7 +13,7 @@ "build": { "builder": "@angular-devkit/build-angular:application", "options": { - "outputPath": "dist/seventeen-project", + "outputPath": "dist/eighteen-project", "index": "src/index.html", "browser": "src/main.ts", "polyfills": [ @@ -21,8 +21,10 @@ ], "tsConfig": "tsconfig.app.json", "assets": [ - "src/favicon.ico", - "src/assets" + { + "glob": "**/*", + "input": "public" + } ], "styles": [ "src/styles.css" @@ -34,13 +36,13 @@ "budgets": [ { "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumWarning": "500kB", + "maximumError": "1MB" }, { "type": "anyComponentStyle", - "maximumWarning": "2kb", - "maximumError": "4kb" + "maximumWarning": "2kB", + "maximumError": "4kB" } ], "outputHashing": "all" @@ -57,19 +59,16 @@ "builder": "@angular-devkit/build-angular:dev-server", "configurations": { "production": { - "buildTarget": "seventeen-project:build:production" + "buildTarget": "eighteen-project:build:production" }, "development": { - "buildTarget": "seventeen-project:build:development" + "buildTarget": "eighteen-project:build:development" } }, "defaultConfiguration": "development" }, "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "buildTarget": "seventeen-project:build" - } + "builder": "@angular-devkit/build-angular:extract-i18n" }, "test": { "builder": "@angular-devkit/build-angular:karma", @@ -80,8 +79,10 @@ ], "tsConfig": "tsconfig.spec.json", "assets": [ - "src/favicon.ico", - "src/assets" + { + "glob": "**/*", + "input": "public" + } ], "styles": [ "src/styles.css" diff --git a/tests/legacy-cli/e2e/assets/18.0-project/package.json b/tests/legacy-cli/e2e/assets/18.0-project/package.json new file mode 100644 index 000000000000..8b05bf229739 --- /dev/null +++ b/tests/legacy-cli/e2e/assets/18.0-project/package.json @@ -0,0 +1,38 @@ +{ + "name": "eighteen-project", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^18.2.0", + "@angular/common": "^18.2.0", + "@angular/compiler": "^18.2.0", + "@angular/core": "^18.2.0", + "@angular/forms": "^18.2.0", + "@angular/platform-browser": "^18.2.0", + "@angular/platform-browser-dynamic": "^18.2.0", + "@angular/router": "^18.2.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.10" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.20", + "@angular/cli": "^18.2.20", + "@angular/compiler-cli": "^18.2.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.2.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.5.2" + } +} diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/favicon.ico b/tests/legacy-cli/e2e/assets/18.0-project/public/favicon.ico similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/src/favicon.ico rename to tests/legacy-cli/e2e/assets/18.0-project/public/favicon.ico diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.css b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.css similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.css rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.css diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html similarity index 98% rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html index cfb20b1ffb89..36093e187977 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html +++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html @@ -134,15 +134,11 @@ --pill-accent: var(--bright-blue); } .pill-group .pill:nth-child(6n + 2) { - --pill-accent: var(--electric-violet); - } - .pill-group .pill:nth-child(6n + 3) { --pill-accent: var(--french-violet); } - + .pill-group .pill:nth-child(6n + 3), .pill-group .pill:nth-child(6n + 4), - .pill-group .pill:nth-child(6n + 5), - .pill-group .pill:nth-child(6n + 6) { + .pill-group .pill:nth-child(6n + 5) { --pill-accent: var(--hot-red); } @@ -238,7 +234,6 @@

Hello, {{ title }}

@for (item of [ { title: 'Explore the Docs', link: 'https://angular.dev' }, { title: 'Learn with Tutorials', link: 'https://angular.dev/tutorials' }, - { title: 'Prompt and best practices for AI', link: 'https://angular.dev/ai/develop-with-ai'}, { title: 'CLI Docs', link: 'https://angular.dev/tools/cli' }, { title: 'Angular Language Service', link: 'https://angular.dev/tools/language-service' }, { title: 'Angular DevTools', link: 'https://angular.dev/tools/devtools' }, diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts similarity index 85% rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts index 81f10c9432b5..6e84e2cd2b04 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts +++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts @@ -14,16 +14,16 @@ describe('AppComponent', () => { expect(app).toBeTruthy(); }); - it(`should have the 'seventeen-project' title`, () => { + it(`should have the 'eighteen-project' title`, () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; - expect(app.title).toEqual('seventeen-project'); + expect(app.title).toEqual('eighteen-project'); }); it('should render title', () => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain('Hello, seventeen-project'); + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, eighteen-project'); }); }); diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts similarity index 90% rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts index ec163593670e..9b1edc2b9399 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts +++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts @@ -9,5 +9,5 @@ import { RouterOutlet } from '@angular/router'; styleUrl: './app.component.css' }) export class AppComponent { - title = 'seventeen-project'; + title = 'eighteen-project'; } diff --git a/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts new file mode 100644 index 000000000000..a1e7d6f864c1 --- /dev/null +++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts @@ -0,0 +1,8 @@ +import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; + +export const appConfig: ApplicationConfig = { + providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)] +}; diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.routes.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.routes.ts similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.routes.ts rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.routes.ts diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/index.html b/tests/legacy-cli/e2e/assets/18.0-project/src/index.html similarity index 88% rename from tests/legacy-cli/e2e/assets/17.0-project/src/index.html rename to tests/legacy-cli/e2e/assets/18.0-project/src/index.html index 18ffbad003b2..ff4948e77fd2 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/src/index.html +++ b/tests/legacy-cli/e2e/assets/18.0-project/src/index.html @@ -2,7 +2,7 @@ - SeventeenProject + EighteenProject diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/main.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/main.ts similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/src/main.ts rename to tests/legacy-cli/e2e/assets/18.0-project/src/main.ts diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/styles.css b/tests/legacy-cli/e2e/assets/18.0-project/src/styles.css similarity index 100% rename from tests/legacy-cli/e2e/assets/17.0-project/src/styles.css rename to tests/legacy-cli/e2e/assets/18.0-project/src/styles.css diff --git a/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json new file mode 100644 index 000000000000..3775b37e3bbc --- /dev/null +++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json similarity index 70% rename from tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json rename to tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json index eb49734a4325..a8bb65b6e220 100644 --- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json +++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json @@ -1,4 +1,5 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ { "compileOnSave": false, "compilerOptions": { @@ -9,15 +10,15 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "skipLibCheck": true, + "isolatedModules": true, "esModuleInterop": true, "sourceMap": true, "declaration": false, "experimentalDecorators": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "importHelpers": true, "target": "ES2022", "module": "ES2022", - "useDefineForClassFields": false, "lib": [ "ES2022", "dom" diff --git a/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json new file mode 100644 index 000000000000..5fb748d9207a --- /dev/null +++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts b/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts index 66b58d87b908..ce343df77d29 100644 --- a/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts +++ b/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts @@ -7,7 +7,7 @@ import { expectToFail } from '../../utils/utils'; export default async function () { let restoreRegistry: (() => Promise) | undefined; try { - restoreRegistry = await createProjectFromAsset('17.0-project', true); + restoreRegistry = await createProjectFromAsset('18.0-project', true); await setRegistry(true); const extraArgs = ['--force']; diff --git a/tests/legacy-cli/e2e/tests/update/update.ts b/tests/legacy-cli/e2e/tests/update/update.ts index d6b73b585eff..3ab99bb0d7b6 100644 --- a/tests/legacy-cli/e2e/tests/update/update.ts +++ b/tests/legacy-cli/e2e/tests/update/update.ts @@ -11,10 +11,10 @@ export default async function () { try { // We need to use the public registry because in the local NPM server we don't have // older versions @angular/cli packages which would cause `npm install` during `ng update` to fail. - restoreRegistry = await createProjectFromAsset('17.0-project', true); + restoreRegistry = await createProjectFromAsset('18.0-project', true); // CLI project version - const cliMajorProjectVersion = 17; + const cliMajorProjectVersion = 18; // If using npm, enable legacy peer deps mode to avoid defects in npm 7+'s peer dependency resolution // Example error where 11.2.14 satisfies the SemVer range ^11.0.0 but still fails: @@ -71,12 +71,12 @@ export default async function () { await ng('update', '@angular/cli', ...extraUpdateArgs); // Generate E2E setup - await ng('generate', 'private-e2e', '--related-app-name=seventeen-project'); + await ng('generate', 'private-e2e', '--related-app-name=eighteen-project'); // Setup testing to use CI Chrome. - await useCIChrome('seventeen-project', './'); - await useCIChrome('seventeen-project', './e2e/'); - await useCIDefaults('seventeen-project'); + await useCIChrome('eighteen-project', './'); + await useCIChrome('eighteen-project', './e2e/'); + await useCIDefaults('eighteen-project'); // Run CLI commands. await ng('generate', 'component', 'my-comp'); @@ -87,5 +87,5 @@ export default async function () { // Verify project now creates bundles await noSilentNg('build', '--configuration=production'); - await expectFileMatchToExist('dist/seventeen-project/browser', /main-[a-zA-Z0-9]{8}\.js/); + await expectFileMatchToExist('dist/eighteen-project/browser', /main-[a-zA-Z0-9]{8}\.js/); } From bccb320c5f628dcd90cedbe08e31df4f10b57b9c Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:36:14 +0000 Subject: [PATCH 011/228] test: remove redundant e2e These are mostly tested in unit tests. (cherry picked from commit 531b20b988553f4bd84f083580db7c100ce7b90e) --- tests/legacy-cli/e2e/tests/generate/class.ts | 17 ----------------- .../legacy-cli/e2e/tests/generate/interface.ts | 16 ---------------- 2 files changed, 33 deletions(-) delete mode 100644 tests/legacy-cli/e2e/tests/generate/class.ts delete mode 100644 tests/legacy-cli/e2e/tests/generate/interface.ts diff --git a/tests/legacy-cli/e2e/tests/generate/class.ts b/tests/legacy-cli/e2e/tests/generate/class.ts deleted file mode 100644 index e1b21f28982a..000000000000 --- a/tests/legacy-cli/e2e/tests/generate/class.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { join } from 'node:path'; -import { ng } from '../../utils/process'; -import { expectFileToExist } from '../../utils/fs'; - -export default function () { - const projectDir = join('src', 'app'); - - return ( - ng('generate', 'class', 'test-class') - .then(() => expectFileToExist(projectDir)) - .then(() => expectFileToExist(join(projectDir, 'test-class.ts'))) - .then(() => expectFileToExist(join(projectDir, 'test-class.spec.ts'))) - - // Try to run the unit tests. - .then(() => ng('test', '--watch=false')) - ); -} diff --git a/tests/legacy-cli/e2e/tests/generate/interface.ts b/tests/legacy-cli/e2e/tests/generate/interface.ts deleted file mode 100644 index d58248d27ac4..000000000000 --- a/tests/legacy-cli/e2e/tests/generate/interface.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { join } from 'node:path'; -import { ng } from '../../utils/process'; -import { expectFileToExist } from '../../utils/fs'; - -export default function () { - const interfaceDir = join('src', 'app'); - - return ( - ng('generate', 'interface', 'test-interface', 'model') - .then(() => expectFileToExist(interfaceDir)) - .then(() => expectFileToExist(join(interfaceDir, 'test-interface.model.ts'))) - - // Try to run the unit tests. - .then(() => ng('test', '--watch=false')) - ); -} From ccdbf29ddc46cce32bc811ddb12f31709c3f0134 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:40:09 +0000 Subject: [PATCH 012/228] refactor: delete protractor tests protractor builder is private. (cherry picked from commit f310ee5d0e5453d08c530520fc4742f6e39316f8) --- .../e2e/tests/commands/e2e/e2e-and-serve.ts | 8 -------- .../e2e/tests/commands/e2e/multiple-specs.ts | 17 ----------------- .../e2e/tests/commands/e2e/protractor-config.ts | 8 -------- .../legacy-cli/e2e/tests/commands/e2e/suite.ts | 16 ---------------- 4 files changed, 49 deletions(-) delete mode 100644 tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts delete mode 100644 tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts delete mode 100644 tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts delete mode 100644 tests/legacy-cli/e2e/tests/commands/e2e/suite.ts diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts b/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts deleted file mode 100644 index 7e70e885a929..000000000000 --- a/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { silentNg } from '../../../utils/process'; -import { ngServe } from '../../../utils/project'; - -export default async function () { - // Should run side-by-side with `ng serve` - await ngServe(); - await silentNg('e2e'); -} diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts b/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts deleted file mode 100644 index c7da20adf900..000000000000 --- a/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { silentNg } from '../../../utils/process'; -import { moveFile, copyFile } from '../../../utils/fs'; - -export default async function () { - // Should accept different multiple spec files - await moveFile('./e2e/src/app.e2e-spec.ts', './e2e/src/renamed-app.e2e-spec.ts'); - await copyFile('./e2e/src/renamed-app.e2e-spec.ts', './e2e/src/another-app.e2e-spec.ts'); - - await silentNg( - 'e2e', - 'test-project', - '--specs', - './e2e/renamed-app.e2e-spec.ts', - '--specs', - './e2e/another-app.e2e-spec.ts', - ); -} diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts b/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts deleted file mode 100644 index 52e9494e4062..000000000000 --- a/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { moveFile } from '../../../utils/fs'; -import { silentNg } from '../../../utils/process'; - -export default async function () { - // Should accept different config file - await moveFile('./e2e/protractor.conf.js', './e2e/renamed-protractor.conf.js'); - await silentNg('e2e', 'test-project', '--protractor-config=e2e/renamed-protractor.conf.js'); -} diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts b/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts deleted file mode 100644 index 519ed63a71bb..000000000000 --- a/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { silentNg } from '../../../utils/process'; -import { replaceInFile } from '../../../utils/fs'; - -export default async function () { - // Suites block need to be added in the protractor.conf.js file to test suites - await replaceInFile( - 'e2e/protractor.conf.js', - `allScriptsTimeout: 11000,`, - `allScriptsTimeout: 11000, - suites: { - app: './e2e/src/app.e2e-spec.ts' - }, - `, - ); - await silentNg('e2e', 'test-project', '--suite=app'); -} From 474e92847e55f79dbe49c4d2774b77beffb8507c Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 14 Aug 2025 19:57:56 +0200 Subject: [PATCH 013/228] refactor: delete basic e2e test Protractor is private and thus this test is redundant. (cherry picked from commit 46921547d39eb56db8ba64e5fa5d5350db0bd509) --- tests/legacy-cli/e2e/tests/basic/e2e.ts | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 tests/legacy-cli/e2e/tests/basic/e2e.ts diff --git a/tests/legacy-cli/e2e/tests/basic/e2e.ts b/tests/legacy-cli/e2e/tests/basic/e2e.ts deleted file mode 100644 index 655b679192d1..000000000000 --- a/tests/legacy-cli/e2e/tests/basic/e2e.ts +++ /dev/null @@ -1,12 +0,0 @@ -import assert from 'node:assert/strict'; -import { setTimeout } from 'node:timers/promises'; -import { silentNg } from '../../utils/process'; - -export default async function () { - await assert.rejects(silentNg('e2e', 'test-project', '--dev-server-target=')); - - // These should work. - await silentNg('e2e', 'test-project'); - await setTimeout(500); - await silentNg('e2e', 'test-project', '--dev-server-target=test-project:serve'); -} From 6a79f9a75cdcbb0761c4044066748f4eb788a57f Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Fri, 15 Aug 2025 08:45:46 +0200 Subject: [PATCH 014/228] fix(@schematics/angular): zoneless is now stable Zoneless is now stable in Angular v20.2 (see https://github.com/angular/angular/commit/141bb75ff241425a93ce5b60b56a4247e67d7648) (cherry picked from commit 7768f4cc4a2613f3c29c18df0033ab715e2bf745) --- packages/schematics/angular/application/schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schematics/angular/application/schema.json b/packages/schematics/angular/application/schema.json index 85952ef00e3c..74254948409b 100644 --- a/packages/schematics/angular/application/schema.json +++ b/packages/schematics/angular/application/schema.json @@ -120,7 +120,7 @@ }, "zoneless": { "description": "Generate an application that does not use `zone.js`.", - "x-prompt": "Do you want to create a 'zoneless' application without zone.js (Developer Preview)?", + "x-prompt": "Do you want to create a 'zoneless' application without zone.js?", "type": "boolean", "default": false } From 2fde130b3736d690a2bb9a56a87a549f357c7e3b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 06:45:57 +0000 Subject: [PATCH 015/228] refactor(@angular/ssr): add workaround for router `lastSuccessfulNavigation` breaking changing This workaround is needed to; - Re-enable SSG in ADEV - Re-enable SSR tests in angular/angular main - Make cross-repo updates green again (cherry picked from commit 68f64fcb69c6c20f7e95cf7753fbcf1e7de79b6c) --- packages/angular/ssr/src/utils/ng.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index b92aa51d1d84..62f504d4341b 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -100,7 +100,15 @@ export async function renderAngular( const envInjector = applicationRef.injector; const routerIsProvided = !!envInjector.get(ActivatedRoute, null); const router = envInjector.get(Router); - const lastSuccessfulNavigation = router.lastSuccessfulNavigation; + + // TODO(alanagius): Remove the below check when version 21.0.0-next.0 is on NPM + // Workaround for breaking change that landed on angular/angular main too early + // https://github.com/angular/angular/pull/63057 + const lastSuccessfulNavigation = + typeof router.lastSuccessfulNavigation === 'function' + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + (router as any).lastSuccessfulNavigation() + : router.lastSuccessfulNavigation; if (!routerIsProvided) { hasNavigationError = false; From 0363219151715bc89d42d38e2d7d793aef443427 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 07:29:09 +0000 Subject: [PATCH 016/228] release: cut the v20.2.0-rc.1 release --- CHANGELOG.md | 19 +++++++++++++++++++ package.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88c8a2df713d..d2b5310bd2ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ + + +# 20.2.0-rc.1 (2025-08-15) + +### @angular/cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------ | +| [8ba6b0bcc](https://github.com/angular/angular-cli/commit/8ba6b0bcc8c8087875d14a0aefc6b7b52f39ce2a) | fix | use correct path for MCP get_best_practices tool | + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------- | +| [ffe6fb916](https://github.com/angular/angular-cli/commit/ffe6fb916d496da1c6c20942f6e6b05a679b0f7d) | fix | allow AI config prompt to be skipped without selecting a value | +| [6a79f9a75](https://github.com/angular/angular-cli/commit/6a79f9a75cdcbb0761c4044066748f4eb788a57f) | fix | zoneless is now stable | + + + # 20.2.0-rc.0 (2025-08-13) diff --git a/package.json b/package.json index c8283adc4061..a1329cecc36b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.0-rc.0", + "version": "20.2.0-rc.1", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 9bab9b558d46d6cd50a157eb3a4836ac80c97d08 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 15 Aug 2025 05:05:33 +0000 Subject: [PATCH 017/228] build: update all non-major dependencies See associated pull request for more information. (cherry picked from commit d0db51ef99243ac9516977e72ee76dc15816377b) --- packages/angular/build/package.json | 2 +- packages/angular/cli/package.json | 2 +- .../angular_devkit/build_angular/package.json | 12 +- .../angular_devkit/build_webpack/package.json | 2 +- packages/ngtools/webpack/package.json | 2 +- pnpm-lock.yaml | 779 ++++++++++-------- 6 files changed, 450 insertions(+), 349 deletions(-) diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index 2491bace216e..692f51f21575 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -20,7 +20,7 @@ "dependencies": { "@ampproject/remapping": "2.3.0", "@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER", - "@babel/core": "7.28.0", + "@babel/core": "7.28.3", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", "@inquirer/confirm": "5.1.14", diff --git a/packages/angular/cli/package.json b/packages/angular/cli/package.json index df20947a3711..26e1186925ee 100644 --- a/packages/angular/cli/package.json +++ b/packages/angular/cli/package.json @@ -27,7 +27,7 @@ "@angular-devkit/schematics": "workspace:0.0.0-PLACEHOLDER", "@inquirer/prompts": "7.8.2", "@listr2/prompt-adapter-inquirer": "3.0.1", - "@modelcontextprotocol/sdk": "1.17.2", + "@modelcontextprotocol/sdk": "1.17.3", "@schematics/angular": "workspace:0.0.0-PLACEHOLDER", "@yarnpkg/lockfile": "1.1.0", "algoliasearch": "5.35.0", diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index ae23e25a8a8b..9d1df7de64be 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -11,15 +11,15 @@ "@angular-devkit/build-webpack": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER", "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "@angular/build": "workspace:0.0.0-PLACEHOLDER", - "@babel/core": "7.28.0", - "@babel/generator": "7.28.0", + "@babel/core": "7.28.3", + "@babel/generator": "7.28.3", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-transform-async-generator-functions": "7.28.0", "@babel/plugin-transform-async-to-generator": "7.27.1", - "@babel/plugin-transform-runtime": "7.28.0", - "@babel/preset-env": "7.28.0", - "@babel/runtime": "7.28.2", + "@babel/plugin-transform-runtime": "7.28.3", + "@babel/preset-env": "7.28.3", + "@babel/runtime": "7.28.3", "@discoveryjs/json-ext": "0.6.3", "@ngtools/webpack": "workspace:0.0.0-PLACEHOLDER", "ansi-colors": "4.1.3", @@ -55,7 +55,7 @@ "terser": "5.43.1", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.101.1", + "webpack": "5.101.2", "webpack-dev-middleware": "7.4.2", "webpack-dev-server": "5.2.2", "webpack-merge": "6.0.1", diff --git a/packages/angular_devkit/build_webpack/package.json b/packages/angular_devkit/build_webpack/package.json index 5561c3931705..bc9afa203240 100644 --- a/packages/angular_devkit/build_webpack/package.json +++ b/packages/angular_devkit/build_webpack/package.json @@ -22,7 +22,7 @@ "devDependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "@ngtools/webpack": "workspace:0.0.0-PLACEHOLDER", - "webpack": "5.101.1", + "webpack": "5.101.2", "webpack-dev-server": "5.2.2" }, "peerDependencies": { diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index d7a6903db781..8ad490c870c5 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -30,6 +30,6 @@ "@angular/compiler": "20.2.0-rc.0", "@angular/compiler-cli": "20.2.0-rc.0", "typescript": "5.9.2", - "webpack": "5.101.1" + "webpack": "5.101.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5da8b8502ac6..e810cdeb13e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,7 +48,7 @@ importers: version: 20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d) '@angular/ng-dev': specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e16e229975bd41d66ec49905d5896b8f61068a19 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.2) + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.0-rc.0 version: 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -353,8 +353,8 @@ importers: specifier: workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER version: link:../../angular_devkit/architect '@babel/core': - specifier: 7.28.0 - version: 7.28.0 + specifier: 7.28.3 + version: 7.28.3 '@babel/helper-annotate-as-pure': specifier: 7.27.3 version: 7.27.3 @@ -472,8 +472,8 @@ importers: specifier: 3.0.1 version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': - specifier: 1.17.2 - version: 1.17.2 + specifier: 1.17.3 + version: 1.17.3 '@schematics/angular': specifier: workspace:0.0.0-PLACEHOLDER version: link:../../schematics/angular @@ -603,11 +603,11 @@ importers: specifier: workspace:* version: link:../../angular/build '@babel/core': - specifier: 7.28.0 - version: 7.28.0 + specifier: 7.28.3 + version: 7.28.3 '@babel/generator': - specifier: 7.28.0 - version: 7.28.0 + specifier: 7.28.3 + version: 7.28.3 '@babel/helper-annotate-as-pure': specifier: 7.27.3 version: 7.27.3 @@ -616,19 +616,19 @@ importers: version: 7.24.7 '@babel/plugin-transform-async-generator-functions': specifier: 7.28.0 - version: 7.28.0(@babel/core@7.28.0) + version: 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-async-to-generator': specifier: 7.27.1 - version: 7.27.1(@babel/core@7.28.0) + version: 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-runtime': - specifier: 7.28.0 - version: 7.28.0(@babel/core@7.28.0) + specifier: 7.28.3 + version: 7.28.3(@babel/core@7.28.3) '@babel/preset-env': - specifier: 7.28.0 - version: 7.28.0(@babel/core@7.28.0) + specifier: 7.28.3 + version: 7.28.3(@babel/core@7.28.3) '@babel/runtime': - specifier: 7.28.2 - version: 7.28.2 + specifier: 7.28.3 + version: 7.28.3 '@discoveryjs/json-ext': specifier: 0.6.3 version: 0.6.3 @@ -643,16 +643,16 @@ importers: version: 10.4.21(postcss@8.5.6) babel-loader: specifier: 10.0.0 - version: 10.0.0(@babel/core@7.28.0)(webpack@5.101.1(esbuild@0.25.9)) + version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 version: 4.25.2 copy-webpack-plugin: specifier: 13.0.1 - version: 13.0.1(webpack@5.101.1(esbuild@0.25.9)) + version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) css-loader: specifier: 7.1.2 - version: 7.1.2(webpack@5.101.1(esbuild@0.25.9)) + version: 7.1.2(webpack@5.101.2(esbuild@0.25.9)) esbuild-wasm: specifier: 0.25.9 version: 0.25.9 @@ -676,16 +676,16 @@ importers: version: 4.4.0 less-loader: specifier: 12.3.0 - version: 12.3.0(less@4.4.0)(webpack@5.101.1(esbuild@0.25.9)) + version: 12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9)) license-webpack-plugin: specifier: 4.0.2 - version: 4.0.2(webpack@5.101.1(esbuild@0.25.9)) + version: 4.0.2(webpack@5.101.2(esbuild@0.25.9)) loader-utils: specifier: 3.3.1 version: 3.3.1 mini-css-extract-plugin: specifier: 2.9.4 - version: 2.9.4(webpack@5.101.1(esbuild@0.25.9)) + version: 2.9.4(webpack@5.101.2(esbuild@0.25.9)) open: specifier: 10.2.0 version: 10.2.0 @@ -703,7 +703,7 @@ importers: version: 8.5.6 postcss-loader: specifier: 8.1.1 - version: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.1(esbuild@0.25.9)) + version: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) resolve-url-loader: specifier: 5.0.0 version: 5.0.0 @@ -715,13 +715,13 @@ importers: version: 1.90.0 sass-loader: specifier: 16.0.5 - version: 16.0.5(sass@1.90.0)(webpack@5.101.1(esbuild@0.25.9)) + version: 16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9)) semver: specifier: 7.7.2 version: 7.7.2 source-map-loader: specifier: 5.0.0 - version: 5.0.0(webpack@5.101.1(esbuild@0.25.9)) + version: 5.0.0(webpack@5.101.2(esbuild@0.25.9)) source-map-support: specifier: 0.5.21 version: 0.5.21 @@ -735,20 +735,20 @@ importers: specifier: 2.8.1 version: 2.8.1 webpack: - specifier: 5.101.1 - version: 5.101.1(esbuild@0.25.9) + specifier: 5.101.2 + version: 5.101.2(esbuild@0.25.9) webpack-dev-middleware: specifier: 7.4.2 - version: 7.4.2(webpack@5.101.1(esbuild@0.25.9)) + version: 7.4.2(webpack@5.101.2(esbuild@0.25.9)) webpack-dev-server: specifier: 5.2.2 - version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9)) + version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9)) webpack-merge: specifier: 6.0.1 version: 6.0.1 webpack-subresource-integrity: specifier: 5.1.0 - version: 5.1.0(webpack@5.101.1(esbuild@0.25.9)) + version: 5.1.0(webpack@5.101.2(esbuild@0.25.9)) devDependencies: '@angular/ssr': specifier: workspace:* @@ -786,11 +786,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../ngtools/webpack webpack: - specifier: 5.101.1 - version: 5.101.1(esbuild@0.25.9) + specifier: 5.101.2 + version: 5.101.2(esbuild@0.25.9) webpack-dev-server: specifier: 5.2.2 - version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9)) + version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9)) packages/angular_devkit/core: dependencies: @@ -868,8 +868,8 @@ importers: specifier: 5.9.2 version: 5.9.2 webpack: - specifier: 5.101.1 - version: 5.101.1(esbuild@0.25.9) + specifier: 5.101.2 + version: 5.101.2(esbuild@0.25.9) packages/schematics/angular: dependencies: @@ -1109,8 +1109,12 @@ packages: resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.0': - resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + '@babel/core@7.28.3': + resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': @@ -1127,6 +1131,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.28.3': + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.27.1': resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} engines: {node: '>=6.9.0'} @@ -1156,6 +1166,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -1204,11 +1220,20 @@ packages: resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.3': + resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.0': resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.3': + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -1233,8 +1258,8 @@ packages: peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1': - resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': + resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1299,14 +1324,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.27.1': - resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==} + '@babel/plugin-transform-class-static-block@7.28.3': + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.28.0': - resolution: {integrity: sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==} + '@babel/plugin-transform-classes@7.28.3': + resolution: {integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1497,8 +1522,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.28.1': - resolution: {integrity: sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==} + '@babel/plugin-transform-regenerator@7.28.3': + resolution: {integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1515,8 +1540,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.28.0': - resolution: {integrity: sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==} + '@babel/plugin-transform-runtime@7.28.3': + resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1575,8 +1600,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.28.0': - resolution: {integrity: sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==} + '@babel/preset-env@7.28.3': + resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1586,8 +1611,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/runtime@7.28.2': - resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + '@babel/runtime@7.28.3': + resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': @@ -1598,6 +1623,10 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.3': + resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} @@ -2447,8 +2476,8 @@ packages: cpu: [x64] os: [win32] - '@modelcontextprotocol/sdk@1.17.2': - resolution: {integrity: sha512-EFLRNXR/ixpXQWu6/3Cu30ndDFIFNaqUXcTqsGebujeMan9FzhAaFFswLRiFj61rgygDRr8WO1N+UijjgRxX9g==} + '@modelcontextprotocol/sdk@1.17.3': + resolution: {integrity: sha512-JPwUKWSsbzx+DLFznf/QZ32Qa+ptfbUlHhRLrBQBAFu9iI1iYvizM4p+zhhRDceSsPutXp4z+R/HPVphlIiclg==} engines: {node: '>=18'} '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': @@ -8704,8 +8733,8 @@ packages: html-webpack-plugin: optional: true - webpack@5.101.1: - resolution: {integrity: sha512-rHY3vHXRbkSfhG6fH8zYQdth/BtDgXXuR2pHF++1f/EBkI8zkgM5XWfsC3BvOoW9pr1CvZ1qQCxhCEsbNgT50g==} + webpack@5.101.2: + resolution: {integrity: sha512-4JLXU0tD6OZNVqlwzm3HGEhAHufSiyv+skb7q0d2367VDMzrU1Q/ZeepvkcHH0rZie6uqEtTQQe0OEOOluH3Mg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9155,11 +9184,11 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.2)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) - '@google/genai': 1.13.0(@modelcontextprotocol/sdk@1.17.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5) + '@google/genai': 1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.8.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) '@octokit/auth-app': 8.0.2 @@ -9269,7 +9298,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 + '@babel/generator': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helpers': 7.28.2 @@ -9285,9 +9314,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.28.0': + '@babel/core@7.28.3': dependencies: - '@babel/parser': 7.28.0 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) + '@babel/helpers': 7.28.3 + '@babel/parser': 7.28.3 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.3 + '@babel/types': 7.28.2 + convert-source-map: 2.0.0 + debug: 4.4.1(supports-color@10.1.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.3': + dependencies: + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 @@ -9305,29 +9354,42 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.28.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.1(supports-color@10.1.0) @@ -9361,27 +9423,45 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.3 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.28.2 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.27.1 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9415,505 +9495,514 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 + '@babel/helpers@7.28.3': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.2 + '@babel/parser@7.28.0': dependencies: '@babel/types': 7.28.2 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': + '@babel/parser@7.28.3': dependencies: - '@babel/core': 7.28.0 + '@babel/types': 7.28.2 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-classes@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)': + '@babel/plugin-transform-regenerator@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.28.0(@babel/core@7.28.0)': + '@babel/preset-env@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.0) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.3) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-classes': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-regenerator': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.3) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) core-js-compat: 3.45.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.28.2 esutils: 2.0.3 - '@babel/runtime@7.28.2': {} + '@babel/runtime@7.28.3': {} '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@babel/traverse@7.28.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 + '@babel/generator': 7.28.3 '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 @@ -9922,6 +10011,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.3': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.3 + '@babel/template': 7.27.2 + '@babel/types': 7.28.2 + debug: 4.4.1(supports-color@10.1.0) + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -10503,12 +10604,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.13.0(@modelcontextprotocol/sdk@1.17.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)': + '@google/genai@1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.1.0) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - '@modelcontextprotocol/sdk': 1.17.2 + '@modelcontextprotocol/sdk': 1.17.3 transitivePeerDependencies: - bufferutil - encoding @@ -10828,7 +10929,7 @@ snapshots: '@lmdb/lmdb-win32-x64@3.4.2': optional: true - '@modelcontextprotocol/sdk@1.17.2': + '@modelcontextprotocol/sdk@1.17.3': dependencies: ajv: 6.12.6 content-type: 1.0.5 @@ -12685,33 +12786,33 @@ snapshots: b4a@1.6.7: {} - babel-loader@10.0.0(@babel/core@7.28.0)(webpack@5.101.1(esbuild@0.25.9)): + babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 find-up: 5.0.0 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3): dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.3): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) core-js-compat: 3.45.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.3): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) transitivePeerDependencies: - supports-color @@ -13255,14 +13356,14 @@ snapshots: dependencies: is-what: 3.14.1 - copy-webpack-plugin@13.0.1(webpack@5.101.1(esbuild@0.25.9)): + copy-webpack-plugin@13.0.1(webpack@5.101.2(esbuild@0.25.9)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.2 serialize-javascript: 6.0.2 tinyglobby: 0.2.14 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) core-js-compat@3.45.0: dependencies: @@ -13306,7 +13407,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-loader@7.1.2(webpack@5.101.1(esbuild@0.25.9)): + css-loader@7.1.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -13317,7 +13418,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) css-select@6.0.0: dependencies: @@ -15064,7 +15165,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -15074,7 +15175,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.3 '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -15421,11 +15522,11 @@ snapshots: picocolors: 1.1.1 shell-quote: 1.8.3 - less-loader@12.3.0(less@4.4.0)(webpack@5.101.1(esbuild@0.25.9)): + less-loader@12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9)): dependencies: less: 4.4.0 optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) less@4.4.0: dependencies: @@ -15446,11 +15547,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.101.1(esbuild@0.25.9)): + license-webpack-plugin@4.0.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: webpack-sources: 3.3.3 optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) lie@3.3.0: dependencies: @@ -15681,11 +15782,11 @@ snapshots: mimic-function@5.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.101.1(esbuild@0.25.9)): + mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)): dependencies: schema-utils: 4.3.2 tapable: 2.2.2 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) minimalistic-assert@1.0.1: {} @@ -16341,14 +16442,14 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.1(esbuild@0.25.9)): + postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)): dependencies: cosmiconfig: 9.0.0(typescript@5.9.2) jiti: 1.21.7 postcss: 8.5.6 semver: 7.7.2 optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) transitivePeerDependencies: - typescript @@ -16895,12 +16996,12 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.1(esbuild@0.25.9)): + sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.90.0 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) sass@1.90.0: dependencies: @@ -17219,11 +17320,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.101.1(esbuild@0.25.9)): + source-map-loader@5.0.0(webpack@5.101.2(esbuild@0.25.9)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) source-map-support@0.4.18: dependencies: @@ -17517,14 +17618,14 @@ snapshots: transitivePeerDependencies: - supports-color - terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.101.1(esbuild@0.25.9)): + terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)): dependencies: '@jridgewell/trace-mapping': 0.3.30 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.43.1 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) optionalDependencies: esbuild: 0.25.9 @@ -18053,7 +18154,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@7.4.2(webpack@5.101.1(esbuild@0.25.9)): + webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 memfs: 4.36.0 @@ -18062,9 +18163,9 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) - webpack-dev-server@5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9)): + webpack-dev-server@5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -18092,10 +18193,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.101.1(esbuild@0.25.9)) + webpack-dev-middleware: 7.4.2(webpack@5.101.2(esbuild@0.25.9)) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) transitivePeerDependencies: - bufferutil - debug @@ -18110,12 +18211,12 @@ snapshots: webpack-sources@3.3.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.101.1(esbuild@0.25.9)): + webpack-subresource-integrity@5.1.0(webpack@5.101.2(esbuild@0.25.9)): dependencies: typed-assert: 1.0.9 - webpack: 5.101.1(esbuild@0.25.9) + webpack: 5.101.2(esbuild@0.25.9) - webpack@5.101.1(esbuild@0.25.9): + webpack@5.101.2(esbuild@0.25.9): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -18139,7 +18240,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.1(esbuild@0.25.9)) + terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: From b54c7a630f8c26de54d0e155a53c15ac04541047 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 11:12:34 +0000 Subject: [PATCH 018/228] build: improve retry exec logic Prior to this change, there was a flaw in its handling of the retry logic, specifically within the `setTimeout` block. The function had a recursive promise resolution problem and an incorrect handling of the rejected state. (cherry picked from commit 0c0f89ead89d6ba4d81c6ababb91b9840f2038e4) --- scripts/windows-testing/convert-symlinks.mjs | 51 +++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs index ece925f8f84b..6b351e6a6b83 100644 --- a/scripts/windows-testing/convert-symlinks.mjs +++ b/scripts/windows-testing/convert-symlinks.mjs @@ -24,6 +24,7 @@ import childProcess from 'node:child_process'; import fs from 'node:fs/promises'; import path from 'node:path'; +import { setTimeout } from 'node:timers/promises'; const [rootDir, cmdPath] = process.argv.slice(2); @@ -93,32 +94,34 @@ async function transformDir(p) { await Promise.all(directoriesToVisit.map((d) => transformDir(d))); } -function exec(cmd, maxRetries = 5, retryDelay = 200) { - return new Promise((resolve, reject) => { - childProcess.exec(cmd, { cwd: rootDir }, (error) => { - if (error !== null) { - // Windows command spawned within WSL (which is untypical) seem to be flaky rarely. - // This logic tries to make it fully stable by re-trying if this surfaces: - // See: https://github.com/microsoft/WSL/issues/8677. - if ( - maxRetries > 0 && - error.stderr !== undefined && - error.stderr.includes(`accept4 failed 110`) - ) { - // Add a small delay before the retry - setTimeout(() => { - resolve(exec(cmd, maxRetries - 1, retryDelay)); - }, retryDelay); - - return; - } - - reject(error); +async function exec(cmd, maxRetries = 5, retryDelay = 100) { + let attempts = 0; + while (attempts <= maxRetries) { + try { + await new Promise((resolve, reject) => { + childProcess.exec(cmd, { cwd: rootDir }, (error) => { + if (error) { + reject(error); + } else { + resolve(); + } + }); + }); + + return; + } catch (error) { + // Windows command spawned within WSL (which is untypical) seem to be flaky. + // This logic tries to make it fully stable by re-trying if this surfaces: + // See: https://github.com/microsoft/WSL/issues/8677. + if (attempts < maxRetries && error.stderr?.includes('accept4 failed 110')) { + // Add a delay before the next attempt + await setTimeout(retryDelay); + attempts++; } else { - resolve(); + throw error; } - }); - }); + } + } } try { From d5b0c8cc2d78f5a22873e298a11a447507731f46 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 11:15:39 +0000 Subject: [PATCH 019/228] build: reduce batch size to try to reduce flakiness Currently, we are getting a lot of flakes due to `accept4 failed 110` error, this commit tries to reduce this by reducing the batching (cherry picked from commit 03717814a6598a382b0c9ff5280b29b47d852f76) --- scripts/windows-testing/convert-symlinks.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs index 6b351e6a6b83..f07bbaaeb481 100644 --- a/scripts/windows-testing/convert-symlinks.mjs +++ b/scripts/windows-testing/convert-symlinks.mjs @@ -133,7 +133,7 @@ try { // Re-link symlinks to work inside Windows. // This is done in batches to avoid flakiness due to WSL // See: https://github.com/microsoft/WSL/issues/8677. - const batchSize = 75; + const batchSize = 50; for (let i = 0; i < relinkFns.length; i += batchSize) { await Promise.all(relinkFns.slice(i, i + batchSize).map((fn) => fn())); } From 05e65ee02709558e9ae0925403ee6f41971634bf Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 15 Aug 2025 11:39:51 -0400 Subject: [PATCH 020/228] test(@angular/build): add initial unit-test vitest runner E2E tests Two E2E tests have been added to test initial capabilities of the experimental unit-test builder with the vitest runner. This also ensures that the generated tests are compatible with both the karma/jasmine-based runner and the vitest runner. (cherry picked from commit 43a3111d2509f0f4217dc0bcd2e2d22a175272e5) --- tests/legacy-cli/e2e.bzl | 2 ++ tests/legacy-cli/e2e/tests/vitest/basic.ts | 15 ++++++++++ .../legacy-cli/e2e/tests/vitest/component.ts | 12 ++++++++ tests/legacy-cli/e2e/utils/vitest.ts | 28 +++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 tests/legacy-cli/e2e/tests/vitest/basic.ts create mode 100644 tests/legacy-cli/e2e/tests/vitest/component.ts create mode 100644 tests/legacy-cli/e2e/utils/vitest.ts diff --git a/tests/legacy-cli/e2e.bzl b/tests/legacy-cli/e2e.bzl index 2647cedfde32..b275b7185e30 100644 --- a/tests/legacy-cli/e2e.bzl +++ b/tests/legacy-cli/e2e.bzl @@ -37,11 +37,13 @@ ESBUILD_TESTS = [ "tests/commands/serve/ssr-http-requests-assets.js", "tests/i18n/**", "tests/vite/**", + "tests/vitest/**", "tests/test/**", ] WEBPACK_IGNORE_TESTS = [ "tests/vite/**", + "tests/vitest/**", "tests/build/app-shell/**", "tests/i18n/ivy-localize-app-shell.js", "tests/i18n/ivy-localize-app-shell-service-worker.js", diff --git a/tests/legacy-cli/e2e/tests/vitest/basic.ts b/tests/legacy-cli/e2e/tests/vitest/basic.ts new file mode 100644 index 000000000000..5d2f2c3e2b37 --- /dev/null +++ b/tests/legacy-cli/e2e/tests/vitest/basic.ts @@ -0,0 +1,15 @@ +import assert from 'node:assert/strict'; +import { applyVitestBuilder } from '../../utils/vitest'; +import { ng } from '../../utils/process'; + +export default async function (): Promise { + await applyVitestBuilder(); + + const { stderr } = await ng('test'); + + assert.match( + stderr, + /NOTE: The "unit-test" builder is currently EXPERIMENTAL/, + 'Expected stderr to include the experimental notice.', + ); +} diff --git a/tests/legacy-cli/e2e/tests/vitest/component.ts b/tests/legacy-cli/e2e/tests/vitest/component.ts new file mode 100644 index 000000000000..421587892196 --- /dev/null +++ b/tests/legacy-cli/e2e/tests/vitest/component.ts @@ -0,0 +1,12 @@ +import assert from 'node:assert/strict'; +import { applyVitestBuilder } from '../../utils/vitest'; +import { ng } from '../../utils/process'; + +export default async function (): Promise { + await applyVitestBuilder(); + await ng('generate', 'component', 'my-comp'); + + const { stdout } = await ng('test'); + + assert.match(stdout, /2 passed/, 'Expected 2 tests to pass.'); +} diff --git a/tests/legacy-cli/e2e/utils/vitest.ts b/tests/legacy-cli/e2e/utils/vitest.ts new file mode 100644 index 000000000000..0cf662bdd48c --- /dev/null +++ b/tests/legacy-cli/e2e/utils/vitest.ts @@ -0,0 +1,28 @@ +import { silentNpm } from './process'; +import { updateJsonFile } from './project'; + +/** Updates the `test` builder in the current workspace to use Vitest. */ +export async function applyVitestBuilder(): Promise { + await silentNpm('install', 'vitest@3.2.4', 'jsdom@26.1.0', '--save-dev'); + + await updateJsonFile('angular.json', (json) => { + const projects = Object.values(json['projects']); + if (projects.length !== 1) { + throw new Error( + `Expected exactly one project but found ${projects.length} projects named ${Object.keys( + json['projects'], + ).join(', ')}`, + ); + } + const project = projects[0]! as any; + + // Update to Vitest builder. + const test = project['architect']['test']; + test['builder'] = '@angular/build:unit-test'; + test['options'] = { + tsConfig: test['options']['tsConfig'], + buildTarget: '::development', + runner: 'vitest', + }; + }); +} From e19eee61404a9ca6268ebbc69f671a422d81df9b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:21:43 +0000 Subject: [PATCH 021/228] fix(@angular/cli): address Node.js deprecation DEP0190 This approach has been recommanded by a Node.js member in https://github.com/nodejs/help/issues/5063#issuecomment-3132899776 Closes #30821 (cherry picked from commit 1a01e183ce2a3612568c31a8f0c2bdf037ec2997) --- .../angular/cli/src/utilities/package-manager.ts | 2 +- scripts/diff-release-package.mts | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts index 1e249a4f13fa..d95205f95184 100644 --- a/packages/angular/cli/src/utilities/package-manager.ts +++ b/packages/angular/cli/src/utilities/package-manager.ts @@ -168,7 +168,7 @@ export class PackageManagerUtils { return new Promise((resolve) => { const bufferedOutput: { stream: NodeJS.WriteStream; data: Buffer }[] = []; - const childProcess = spawn(this.name, args, { + const childProcess = spawn(`${this.name} ${args.join(' ')}`, { // Always pipe stderr to allow for failures to be reported stdio: silent ? ['ignore', 'ignore', 'pipe'] : 'pipe', shell: true, diff --git a/scripts/diff-release-package.mts b/scripts/diff-release-package.mts index 0cc4524ad03d..2bf01aded3cd 100644 --- a/scripts/diff-release-package.mts +++ b/scripts/diff-release-package.mts @@ -64,7 +64,7 @@ async function main(packageName: string) { console.log(`--> Cloned snapshot repo.`); const bazelBinDir = childProcess - .spawnSync(bazel, ['info', 'bazel-bin'], { + .spawnSync(`${bazel} info bazel-bin`, { shell: true, encoding: 'utf8', stdio: ['pipe', 'pipe', 'inherit'], @@ -79,15 +79,11 @@ async function main(packageName: string) { // Delete old directory to avoid surprises, or stamping being outdated. await deleteDir(outputPath); - childProcess.spawnSync( - bazel, - ['build', `//packages/${targetDir}:npm_package`, '--config=snapshot'], - { - shell: true, - stdio: 'inherit', - encoding: 'utf8', - }, - ); + childProcess.spawnSync(`${bazel} build //packages/${targetDir}:npm_package --config=snapshot`, { + shell: true, + stdio: 'inherit', + encoding: 'utf8', + }); console.log('--> Built npm package with --config=snapshot'); console.error(`--> Output: ${outputPath}`); From c43504d8d96a4436ce71c23d957aec2d080106b8 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:22:01 +0000 Subject: [PATCH 022/228] fix(@angular-devkit/schematics): address Node.js deprecation DEP0190 This approach has been recommanded by a Node.js member in https://github.com/nodejs/help/issues/5063#issuecomment-3132899776 Closes #30821 (cherry picked from commit dd90a8179d58cfa1b4dd046719d5f0d852c6b6c8) --- .../angular_devkit/schematics/tasks/package-manager/executor.ts | 2 +- packages/angular_devkit/schematics/tasks/repo-init/executor.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts index 9e162c0b397b..e0fa17ee6a7b 100644 --- a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts +++ b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts @@ -132,7 +132,7 @@ export default function ( // Workaround for https://github.com/sindresorhus/ora/issues/136. discardStdin: process.platform != 'win32', }).start(); - const childProcess = spawn(taskPackageManagerName, args, spawnOptions).on( + const childProcess = spawn(`${taskPackageManagerName} ${args.join(' ')}`, spawnOptions).on( 'close', (code: number) => { if (code === 0) { diff --git a/packages/angular_devkit/schematics/tasks/repo-init/executor.ts b/packages/angular_devkit/schematics/tasks/repo-init/executor.ts index 8d1ba4804493..97b2b12a3619 100644 --- a/packages/angular_devkit/schematics/tasks/repo-init/executor.ts +++ b/packages/angular_devkit/schematics/tasks/repo-init/executor.ts @@ -41,7 +41,7 @@ export default function ( }; return new Promise((resolve, reject) => { - spawn('git', args, spawnOptions).on('close', (code: number) => { + spawn(`git ${args.join(' ')}`, spawnOptions).on('close', (code: number) => { if (code === 0) { resolve(); } else { From a3b25f675283fdd8cc5689e3ec88f27aa1386390 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 10:40:20 +0000 Subject: [PATCH 023/228] fix(@angular/cli): add choices to command line parser when type is array and has an enum This commit enhances the command-line parser in `@angular/cli` by adding support for displaying available choices when a command option is of type `array` and has an `enum`. (cherry picked from commit 04094e8f63fe50904b0525e804f8ead912d5955e) --- .../command-builder/utilities/json-schema.ts | 27 ++++++++++--------- .../utilities/json-schema_spec.ts | 27 ++++++++++++++++++- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index 84af5f2d3641..4ac0c9fd7b33 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -148,7 +148,7 @@ export async function parseJsonSchemaToOptions( if ( json.isJsonObject(current.items) && typeof current.items.type == 'string' && - ['boolean', 'number', 'string'].includes(current.items.type) + isValidTypeForEnum(current.items.type) ) { return true; } @@ -169,17 +169,15 @@ export async function parseJsonSchemaToOptions( } // Only keep enum values we support (booleans, numbers and strings). - const enumValues = ((json.isJsonArray(current.enum) && current.enum) || []).filter((x) => { - switch (typeof x) { - case 'boolean': - case 'number': - case 'string': - return true; - - default: - return false; - } - }) as (string | true | number)[]; + const enumValues = ( + (json.isJsonArray(current.enum) && current.enum) || + (json.isJsonObject(current.items) && + json.isJsonArray(current.items.enum) && + current.items.enum) || + [] + ) + .filter((value) => isValidTypeForEnum(typeof value)) + .sort() as (string | true | number)[]; let defaultValue: string | number | boolean | undefined = undefined; if (current.default !== undefined) { @@ -356,3 +354,8 @@ export function addSchemaOptionsToCommand( return optionsWithAnalytics; } + +const VALID_ENUM_TYPES = new Set(['boolean', 'number', 'string']); +function isValidTypeForEnum(value: string): boolean { + return VALID_ENUM_TYPES.has(value); +} diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts index 5ec5db644bef..fe24104cc611 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts @@ -7,7 +7,7 @@ */ import { json, schema } from '@angular-devkit/core'; -import yargs, { positional } from 'yargs'; +import yargs from 'yargs'; import { addSchemaOptionsToCommand, parseJsonSchemaToOptions } from './json-schema'; @@ -74,6 +74,13 @@ describe('parseJsonSchemaToOptions', () => { 'type': 'string', 'enum': ['always', 'surprise-me', 'never'], }, + 'arrayWithChoices': { + 'type': 'array', + 'items': { + 'type': 'string', + 'enum': ['always', 'never'], + }, + }, 'extendable': { 'type': 'object', 'properties': {}, @@ -100,6 +107,24 @@ describe('parseJsonSchemaToOptions', () => { }); }); + describe('type=array, enum', () => { + it('parses valid option value', async () => { + expect( + await parse(['--arrayWithChoices', 'always', '--arrayWithChoices', 'never']), + ).toEqual( + jasmine.objectContaining({ + 'arrayWithChoices': ['always', 'never'], + }), + ); + }); + + it('rejects non-enum values', async () => { + await expectAsync(parse(['--arrayWithChoices', 'yes'])).toBeRejectedWithError( + /Argument: array-with-choices, Given: "yes", Choices:/, + ); + }); + }); + describe('type=string, enum', () => { it('parses valid option value', async () => { expect(await parse(['--ssr', 'never'])).toEqual( From ae2802b7db358c5a3f0590feea212a768a710353 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:32:15 +0000 Subject: [PATCH 024/228] fix(@schematics/angular): improve AI config prompt wording This improves the prompt wording and adds more context. (cherry picked from commit 1feac5f003c98aa8c2afeea8c61a0d447e1e6087) --- .../schematics/angular/ai-config/schema.json | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json index def28602e311..8595f9f7c558 100644 --- a/packages/schematics/angular/ai-config/schema.json +++ b/packages/schematics/angular/ai-config/schema.json @@ -10,7 +10,40 @@ "type": "array", "uniqueItems": true, "default": "none", - "x-prompt": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai", + "x-prompt": { + "message": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai", + "type": "list", + "items": [ + { + "value": "none", + "label": "None" + }, + { + "value": "claude", + "label": "Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]" + }, + { + "value": "cursor", + "label": "Cursor [ https://docs.cursor.com/en/context/rules ]" + }, + { + "value": "gemini", + "label": "Gemini [ https://ai.google.dev/gemini-api/docs ]" + }, + { + "value": "copilot", + "label": "GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization#_custom-instructions ]" + }, + { + "value": "jetbrains", + "label": "JetBrains AI Assistant [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]" + }, + { + "value": "windsurf", + "label": "Windsurf [ https://docs.windsurf.com/windsurf/cascade/memories#rules ]" + } + ] + }, "description": "Specifies which AI tools to generate configuration files for. These file are used to improve the outputs of AI tools by following the best practices.", "items": { "type": "string", From 8abe5cda5ef561e186216df83f76569ac7b0bb37 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:50:55 +0000 Subject: [PATCH 025/228] refactor(@angular/cli): improve analytics handling This commit includes minor changes to how analytics are handled, including: - Removing unnecessary type castings. - Concatenating arrays into strings for Google Analytics, as it doesn't support arrays. - Applying default values to multi-select prompts for a smoother user experience. (cherry picked from commit aace49ec235a164e1180cf148d5926987fdf5557) --- .../cli/src/command-builder/command-module.ts | 19 +++++++++++++------ .../schematics-command-module.ts | 2 ++ .../command-builder/utilities/json-schema.ts | 7 ++++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/angular/cli/src/command-builder/command-module.ts b/packages/angular/cli/src/command-builder/command-module.ts index 0b18512180d2..64f7ac7377c7 100644 --- a/packages/angular/cli/src/command-builder/command-module.ts +++ b/packages/angular/cli/src/command-builder/command-module.ts @@ -89,7 +89,10 @@ export abstract class CommandModule implements CommandModuleI protected readonly shouldReportAnalytics: boolean = true; readonly scope: CommandScope = CommandScope.Both; - private readonly optionsWithAnalytics = new Map(); + private readonly optionsWithAnalytics = new Map< + string, + EventCustomDimension | EventCustomMetric + >(); constructor(protected readonly context: CommandContext) {} @@ -236,12 +239,16 @@ export abstract class CommandModule implements CommandModuleI ]); for (const [name, ua] of this.optionsWithAnalytics) { + if (!validEventCustomDimensionAndMetrics.has(ua)) { + continue; + } + const value = options[name]; - if ( - (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') && - validEventCustomDimensionAndMetrics.has(ua as EventCustomDimension | EventCustomMetric) - ) { - parameters[ua as EventCustomDimension | EventCustomMetric] = value; + if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') { + parameters[ua] = value; + } else if (Array.isArray(value)) { + // GA doesn't allow array as values. + parameters[ua] = value.sort().join(', '); } } diff --git a/packages/angular/cli/src/command-builder/schematics-command-module.ts b/packages/angular/cli/src/command-builder/schematics-command-module.ts index 738fd497382b..529d47b078f1 100644 --- a/packages/angular/cli/src/command-builder/schematics-command-module.ts +++ b/packages/angular/cli/src/command-builder/schematics-command-module.ts @@ -204,11 +204,13 @@ export abstract class SchematicsCommandModule ? { name: item, value: item, + checked: item === definition.default, } : { ...item, name: item.label, value: item.value, + checked: item.value === definition.default, }, ), }); diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index 4ac0c9fd7b33..72b282905e42 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -8,6 +8,7 @@ import { json, strings } from '@angular-devkit/core'; import type { Arguments, Argv, PositionalOptions, Options as YargsOptions } from 'yargs'; +import { EventCustomDimension } from '../../analytics/analytics-parameters'; /** * An option description. @@ -278,10 +279,10 @@ export function addSchemaOptionsToCommand( localYargs: Argv, options: Option[], includeDefaultValues: boolean, -): Map { +): Map { const booleanOptionsWithNoPrefix = new Set(); const keyValuePairOptions = new Set(); - const optionsWithAnalytics = new Map(); + const optionsWithAnalytics = new Map(); for (const option of options) { const { @@ -336,7 +337,7 @@ export function addSchemaOptionsToCommand( // Record option of analytics. if (userAnalytics !== undefined) { - optionsWithAnalytics.set(name, userAnalytics); + optionsWithAnalytics.set(name, userAnalytics as EventCustomDimension); } } From 4ee6f327a206f8ff2ad5eeab43193df56b92b5e0 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 18 Aug 2025 11:55:22 +0000 Subject: [PATCH 026/228] fix(@angular/cli): apply default to array types This commit fixes an issue where the `default` option was not being applied to `array` type options in yargs. This seemingly minor change required refactoring in some tests, which revealed that a `.coerce` validation was incorrectly throwing an error on failure. The validation logic was moved to a `.check` to ensure proper error handling and prevent unexpected failures. (cherry picked from commit c3789e4ebbbdf37a76df3b97a7d842612b52155d) --- .../command-builder/utilities/json-schema.ts | 51 +++-- .../utilities/json-schema_spec.ts | 185 +++++++----------- 2 files changed, 113 insertions(+), 123 deletions(-) diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index 72b282905e42..90c619dc024e 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -51,10 +51,33 @@ export interface Option extends YargsOptions { itemValueType?: 'string'; } +function checkStringMap(keyValuePairOptions: Set, args: Arguments): boolean { + for (const key of keyValuePairOptions) { + const value = args[key]; + if (!Array.isArray(value)) { + // Value has been parsed. + continue; + } + + for (const pair of value) { + if (pair === undefined) { + continue; + } + + if (!pair.includes('=')) { + throw new Error( + `Invalid value for argument: ${key}, Given: '${pair}', Expected key=value pair`, + ); + } + } + } + + return true; +} + function coerceToStringMap( - dashedName: string, value: (string | undefined)[], -): Record | Promise { +): Record | (string | undefined)[] { const stringMap: Record = {}; for (const pair of value) { // This happens when the flag isn't passed at all. @@ -64,18 +87,12 @@ function coerceToStringMap( const eqIdx = pair.indexOf('='); if (eqIdx === -1) { - // TODO: Remove workaround once yargs properly handles thrown errors from coerce. - // Right now these sometimes end up as uncaught exceptions instead of proper validation - // errors with usage output. - return Promise.reject( - new Error( - `Invalid value for argument: ${dashedName}, Given: '${pair}', Expected key=value pair`, - ), - ); + // In the case it is not valid skip processing this option and handle the error in `checkStringMap` + return value; } + const key = pair.slice(0, eqIdx); - const value = pair.slice(eqIdx + 1); - stringMap[key] = value; + stringMap[key] = pair.slice(eqIdx + 1); } return stringMap; @@ -184,6 +201,7 @@ export async function parseJsonSchemaToOptions( if (current.default !== undefined) { switch (types[0]) { case 'string': + case 'array': if (typeof current.default == 'string') { defaultValue = current.default; } @@ -308,7 +326,7 @@ export function addSchemaOptionsToCommand( } if (itemValueType) { - keyValuePairOptions.add(name); + keyValuePairOptions.add(dashedName); } const sharedOptions: YargsOptions & PositionalOptions = { @@ -317,7 +335,7 @@ export function addSchemaOptionsToCommand( description, deprecated, choices, - coerce: itemValueType ? coerceToStringMap.bind(null, dashedName) : undefined, + coerce: itemValueType ? coerceToStringMap : undefined, // This should only be done when `--help` is used otherwise default will override options set in angular.json. ...(includeDefaultValues ? { default: defaultVal } : {}), }; @@ -341,6 +359,11 @@ export function addSchemaOptionsToCommand( } } + // Valid key/value options + if (keyValuePairOptions.size) { + localYargs.check(checkStringMap.bind(null, keyValuePairOptions), false); + } + // Handle options which have been defined in the schema with `no` prefix. if (booleanOptionsWithNoPrefix.size) { localYargs.middleware((options: Arguments) => { diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts index fe24104cc611..cc86cc99dddc 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts @@ -6,95 +6,61 @@ * found in the LICENSE file at https://angular.dev/license */ -import { json, schema } from '@angular-devkit/core'; +import { schema } from '@angular-devkit/core'; import yargs from 'yargs'; import { addSchemaOptionsToCommand, parseJsonSchemaToOptions } from './json-schema'; -const YError = (() => { - try { - const y = yargs().strict().fail(false).exitProcess(false).parse(['--forced-failure']); - } catch (e) { - if (!(e instanceof Error)) { - throw new Error('Unexpected non-Error thrown'); - } - - return e.constructor as typeof Error; - } - throw new Error('Expected parse to fail'); -})(); - -interface ParseFunction { - (argv: string[]): unknown; -} - -function withParseForSchema( - jsonSchema: json.JsonObject, - { - interactive = true, - includeDefaultValues = true, - }: { interactive?: boolean; includeDefaultValues?: boolean } = {}, -): ParseFunction { - let actualParse: ParseFunction = () => { - throw new Error('Called before init'); - }; - const parse: ParseFunction = (args) => { - return actualParse(args); - }; - - beforeEach(async () => { - const registry = new schema.CoreSchemaRegistry(); - const options = await parseJsonSchemaToOptions(registry, jsonSchema, interactive); - - actualParse = async (args: string[]) => { - // Create a fresh yargs for each call. The yargs object is stateful and - // calling .parse multiple times on the same instance isn't safe. - const localYargs = yargs().exitProcess(false).strict().fail(false); - addSchemaOptionsToCommand(localYargs, options, includeDefaultValues); - +describe('parseJsonSchemaToOptions', () => { + describe('without required fields in schema', () => { + const parse = async (args: string[]) => { // Yargs only exposes the parse errors as proper errors when using the // callback syntax. This unwraps that ugly workaround so tests can just // use simple .toThrow/.toEqual assertions. return localYargs.parseAsync(args); }; - }); - - return parse; -} -describe('parseJsonSchemaToOptions', () => { - describe('without required fields in schema', () => { - const parse = withParseForSchema({ - 'type': 'object', - 'properties': { - 'maxSize': { - 'type': 'number', - }, - 'ssr': { - 'type': 'string', - 'enum': ['always', 'surprise-me', 'never'], - }, - 'arrayWithChoices': { - 'type': 'array', - 'items': { - 'type': 'string', - 'enum': ['always', 'never'], + let localYargs: yargs.Argv; + beforeEach(async () => { + // Create a fresh yargs for each call. The yargs object is stateful and + // calling .parse multiple times on the same instance isn't safe. + localYargs = yargs().exitProcess(false).strict().fail(false).wrap(1_000); + const jsonSchema = { + 'type': 'object', + 'properties': { + 'maxSize': { + 'type': 'number', }, - }, - 'extendable': { - 'type': 'object', - 'properties': {}, - 'additionalProperties': { + 'ssr': { 'type': 'string', + 'enum': ['always', 'surprise-me', 'never'], }, - }, - 'someDefine': { - 'type': 'object', - 'additionalProperties': { - 'type': 'string', + 'arrayWithChoices': { + 'type': 'array', + 'default': 'default-array', + 'items': { + 'type': 'string', + 'enum': ['always', 'never', 'default-array'], + }, + }, + 'extendable': { + 'type': 'object', + 'properties': {}, + 'additionalProperties': { + 'type': 'string', + }, + }, + 'someDefine': { + 'type': 'object', + 'additionalProperties': { + 'type': 'string', + }, }, }, - }, + }; + const registry = new schema.CoreSchemaRegistry(); + const options = await parseJsonSchemaToOptions(registry, jsonSchema, false); + addSchemaOptionsToCommand(localYargs, options, true); }); describe('type=number', () => { @@ -123,6 +89,10 @@ describe('parseJsonSchemaToOptions', () => { /Argument: array-with-choices, Given: "yes", Choices:/, ); }); + + it('should add default value to help', async () => { + expect(await localYargs.getHelp()).toContain('[default: "default-array"]'); + }); }); describe('type=string, enum', () => { @@ -150,11 +120,9 @@ describe('parseJsonSchemaToOptions', () => { it('rejects invalid values for string maps', async () => { await expectAsync(parse(['--some-define', 'foo'])).toBeRejectedWithError( - YError, /Invalid value for argument: some-define, Given: 'foo', Expected key=value pair/, ); await expectAsync(parse(['--some-define', '42'])).toBeRejectedWithError( - YError, /Invalid value for argument: some-define, Given: '42', Expected key=value pair/, ); }); @@ -187,43 +155,42 @@ describe('parseJsonSchemaToOptions', () => { describe('with required positional argument', () => { it('marks the required argument as required', async () => { - const jsonSchema = JSON.parse(` - { - "$id": "FakeSchema", - "title": "Fake Schema", - "type": "object", - "required": ["a"], - "properties": { - "b": { - "type": "string", - "description": "b.", - "$default": { - "$source": "argv", - "index": 1 - } + const jsonSchema = { + '$id': 'FakeSchema', + 'title': 'Fake Schema', + 'type': 'object', + 'required': ['a'], + 'properties': { + 'b': { + 'type': 'string', + 'description': 'b.', + '$default': { + '$source': 'argv', + 'index': 1, + }, }, - "a": { - "type": "string", - "description": "a.", - "$default": { - "$source": "argv", - "index": 0 - } + 'a': { + 'type': 'string', + 'description': 'a.', + '$default': { + '$source': 'argv', + 'index': 0, + }, }, - "optC": { - "type": "string", - "description": "optC" + 'optC': { + 'type': 'string', + 'description': 'optC', }, - "optA": { - "type": "string", - "description": "optA" + 'optA': { + 'type': 'string', + 'description': 'optA', + }, + 'optB': { + 'type': 'string', + 'description': 'optB', }, - "optB": { - "type": "string", - "description": "optB" - } - } - }`) as json.JsonObject; + }, + }; const registry = new schema.CoreSchemaRegistry(); const options = await parseJsonSchemaToOptions(registry, jsonSchema, /* interactive= */ true); From 73fc157e18f963faf7f0f83f33d4a093e3355e83 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Thu, 14 Aug 2025 12:43:58 +0000 Subject: [PATCH 027/228] build: move from using WORKSPACE to MODULE.bazel --- MODULE.bazel | 163 +- MODULE.bazel.lock | 2991 ++++++++++++++++++++++- WORKSPACE | 294 --- tests/legacy-cli/BUILD.bazel | 1 - tests/legacy-cli/e2e.bzl | 4 +- tools/bazel/npm_package.bzl | 2 +- tools/link_package_json_to_tarballs.bzl | 2 +- tools/toolchain_info.bzl | 18 +- 8 files changed, 3135 insertions(+), 340 deletions(-) delete mode 100644 WORKSPACE diff --git a/MODULE.bazel b/MODULE.bazel index f90ed9010d4c..60848392753c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,5 +1,166 @@ -# TODO(devversion): Investigate bzlmod and use it where possible. +"""Rules/toolchains for angular_cli with Bazel.""" module( name = "angular_cli", ) + +bazel_dep(name = "yq.bzl", version = "0.2.0") +bazel_dep(name = "rules_nodejs", version = "6.5.0") +bazel_dep(name = "aspect_rules_js", version = "2.4.2") +bazel_dep(name = "aspect_rules_ts", version = "3.6.3") +bazel_dep(name = "rules_pkg", version = "0.8.1") +# Alow for usage of rules_pkg@0.8.1 even though other deps want a later verison. +multiple_version_override(module_name="rules_pkg", versions = ["0.8.1", "1.1.0"]) +bazel_dep(name = "rules_python", version = "1.5.3") +single_version_override(module_name="rules_python", version = "1.5.3") +bazel_dep(name = "aspect_bazel_lib", version = "2.20.0") +bazel_dep(name = "bazel_skylib", version = "1.8.1") +bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") +bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") +bazel_dep(name = "rules_angular") +git_override( + module_name = "rules_angular", + commit = "a957283cdef0ade1fc6d1d7404f14577cebd3642", + remote = "https://github.com/devversion/rules_angular.git", +) +bazel_dep(name = "devinfra") +git_override( + module_name = "devinfra", + commit = "7a11f99c467ca5ae4411c27beeec4300e32b616a", + remote = "https://github.com/angular/dev-infra.git", +) +bazel_dep(name = "rules_sass") +git_override( + module_name = "rules_sass", + commit = "76078d5e9776a0080dcee496e90b88d8a6179c19", + remote = "https://github.com/devversion/rules_sass.git", +) +bazel_dep(name = "rules_browsers") +git_override( + module_name = "rules_browsers", + commit = "8ee9ae3216ef26516c8ef20537c89857343cdc3a", + remote = "https://github.com/devversion/rules_browsers.git", +) + +NODE_24_VERSION = "24.0.0" +NODE_24_REPO = { + "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"), + "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"), + "24.0.0-linux_arm64": ("node-v24.0.0-linux-arm64.tar.xz", "node-v24.0.0-linux-arm64", "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"), + "24.0.0-linux_ppc64le": ("node-v24.0.0-linux-ppc64le.tar.xz", "node-v24.0.0-linux-ppc64le", "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"), + "24.0.0-linux_s390x": ("node-v24.0.0-linux-s390x.tar.xz", "node-v24.0.0-linux-s390x", "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"), + "24.0.0-linux_amd64": ("node-v24.0.0-linux-x64.tar.xz", "node-v24.0.0-linux-x64", "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"), + "24.0.0-windows_amd64": ("node-v24.0.0-win-x64.zip", "node-v24.0.0-win-x64", "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"), +} + +node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") +node.toolchain( + name = "nodejs", + node_repositories = NODE_24_REPO, + node_version = NODE_24_VERSION, +) +use_repo(node, "nodejs_toolchains") + +node.toolchain( + name = "node20", + node_repositories = { + "20.19.0-darwin_arm64": ("node-v20.19.0-darwin-arm64.tar.gz", "node-v20.19.0-darwin-arm64", "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c"), + "20.19.0-darwin_amd64": ("node-v20.19.0-darwin-x64.tar.gz", "node-v20.19.0-darwin-x64", "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20"), + "20.19.0-linux_arm64": ("node-v20.19.0-linux-arm64.tar.xz", "node-v20.19.0-linux-arm64", "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9"), + "20.19.0-linux_ppc64le": ("node-v20.19.0-linux-ppc64le.tar.xz", "node-v20.19.0-linux-ppc64le", "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65"), + "20.19.0-linux_s390x": ("node-v20.19.0-linux-s390x.tar.xz", "node-v20.19.0-linux-s390x", "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a"), + "20.19.0-linux_amd64": ("node-v20.19.0-linux-x64.tar.xz", "node-v20.19.0-linux-x64", "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5"), + "20.19.0-windows_amd64": ("node-v20.19.0-win-x64.zip", "node-v20.19.0-win-x64", "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f"), + }, + node_version = "20.19.0", +) +use_repo(node, "node20_toolchains") + +node.toolchain( + name = "node22", + node_repositories = { + "22.12.0-darwin_arm64": ("node-v22.12.0-darwin-arm64.tar.gz", "node-v22.12.0-darwin-arm64", "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13"), + "22.12.0-darwin_amd64": ("node-v22.12.0-darwin-x64.tar.gz", "node-v22.12.0-darwin-x64", "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173"), + "22.12.0-linux_arm64": ("node-v22.12.0-linux-arm64.tar.xz", "node-v22.12.0-linux-arm64", "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68"), + "22.12.0-linux_ppc64le": ("node-v22.12.0-linux-ppc64le.tar.xz", "node-v22.12.0-linux-ppc64le", "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004"), + "22.12.0-linux_s390x": ("node-v22.12.0-linux-s390x.tar.xz", "node-v22.12.0-linux-s390x", "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35"), + "22.12.0-linux_amd64": ("node-v22.12.0-linux-x64.tar.xz", "node-v22.12.0-linux-x64", "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f"), + "22.12.0-windows_amd64": ("node-v22.12.0-win-x64.zip", "node-v22.12.0-win-x64", "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8"), + }, + node_version = "22.12.0", +) +use_repo(node, "node22_toolchains") + +node.toolchain( + name = "node24", + node_repositories = NODE_24_REPO, + node_version = NODE_24_VERSION, +) +use_repo(node, "node24_toolchains") + +npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") +npm.npm_translate_lock( + name = "npm", + custom_postinstalls = { + # TODO: Standardize browser management for `rules_js` + "webdriver-manager": "node ./bin/webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21", + }, + data = [ + "//:package.json", + "//:pnpm-workspace.yaml", + "//modules/testing/builder:package.json", + "//packages/angular/build:package.json", + "//packages/angular/cli:package.json", + "//packages/angular/pwa:package.json", + "//packages/angular/ssr:package.json", + "//packages/angular_devkit/architect:package.json", + "//packages/angular_devkit/architect_cli:package.json", + "//packages/angular_devkit/build_angular:package.json", + "//packages/angular_devkit/build_webpack:package.json", + "//packages/angular_devkit/core:package.json", + "//packages/angular_devkit/schematics:package.json", + "//packages/angular_devkit/schematics_cli:package.json", + "//packages/ngtools/webpack:package.json", + "//packages/schematics/angular:package.json", + "//tests:package.json", + "//tools/baseline_browserslist:package.json", + ], + lifecycle_hooks_envs = { + # TODO: Standardize browser management for `rules_js` + "puppeteer": ["PUPPETEER_DOWNLOAD_PATH=./downloads"], + }, + lifecycle_hooks_execution_requirements = { + # Needed for downloading chromedriver. + # Also `update-config` of webdriver manager would store an absolute path; + # which would then break execution. + "webdriver-manager": ["local"], + }, + npmrc = "//:.npmrc", + pnpm_lock = "//:pnpm-lock.yaml", + verify_node_modules_ignored = "//:.bazelignore", +) +use_repo(npm, "npm") + +rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext") +rules_ts_ext.deps( + # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity' + ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + ts_version_from = "//:package.json", + name = "angular_cli_npm_typescript", +) +use_repo(rules_ts_ext, **{"npm_typescript":"angular_cli_npm_typescript"}) + +rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular") +rules_angular.setup( + name = "components_rules_angular_configurable_deps", + angular_compiler_cli = "//:node_modules/@angular/compiler-cli", + typescript = "//:node_modules/typescript", +) +use_repo(rules_angular, **{"rules_angular_configurable_deps":"components_rules_angular_configurable_deps"}) + +register_toolchains( + "@devinfra//bazel/git-toolchain:git_linux_toolchain", + "@devinfra//bazel/git-toolchain:git_macos_x86_toolchain", + "@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain", + "@devinfra//bazel/git-toolchain:git_windows_toolchain", +) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3137c9f1d3fc..89a24846b104 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -4,60 +4,171 @@ "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", - "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/MODULE.bazel": "c5565bac49e1973227225b441fad1c938d498d83df62dc5da95b2fab0f0626a2", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/source.json": "3eaada79dd3c65b6c57d5fc33c57ffd2896c4ebd78c4c9001a790a70f7f50e61", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", + "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/MODULE.bazel": "499ce65b6126f344f9a630040b9db91b36b20c6d1436026120067d922c2d69bd", + "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/source.json": "84138a41a9e71655cb97d39fcb80f6e2ba7e754d5601fb14f5a7d14080dff409", + "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/MODULE.bazel": "071d1952527721bf8b180e1299def24edaece9d7466e31a311981640da82c6be", + "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299", + "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", + "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", + "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/source.json": "854a600536a6fa4efae974a19271ae3d86d39705094cc41331724583398bb0b6", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/source.json": "641e58c62e5090d52a0d3538451893acdb2d79a36e8b3d1d30a013c580bc2058", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/MODULE.bazel": "20f53b145f40957a51077ae90b37b7ce83582a1daf9350349f0f86179e19dd0d", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/source.json": "e0a34c61e5315d41e9b90e4771a60e0924f80a2810ec15e7d489e6249c0dea56", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", - "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.0/MODULE.bazel": "2ab127ef8d56a739a99bb2ce00ec4c7d1ecc7977d4370c0ca6efd0d8f03d6d99", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", - "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/source.json": "fa7b512dfcb5eafd90ce3959cf42a2a6fe96144ebbb4b3b3928054895f2afac2", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", - "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/source.json": "e53a759a72488d2c0576f57491ef2da0cf4aab05ac0997314012495935531b73", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", - "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", - "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/source.json": "c16a6488fb279ef578da7098e605082d72ed85fc8d843eaae81e7d27d0f4625d", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", - "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", - "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.5.1/source.json": "db1a77d81b059e0f84985db67a22f3f579a529a86b7997605be3d214a0abe38e", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", - "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", - "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", + "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d", + "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/MODULE.bazel": "546d0cf79f36f9f6e080816045f97234b071c205f4542e3351bd4424282a8810", + "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/source.json": "ac075bc5babebc25a0adc88ee885f2c8d8520d141f6e139ba9dfa0eedb5be908", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", - "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c", + "https://bcr.bazel.build/modules/rules_pkg/0.8.1/MODULE.bazel": "7e9e7b5b26bd7ff012dfe63930db2f0176ddcd25e44a858fc72d63e995b6aab9", + "https://bcr.bazel.build/modules/rules_pkg/0.8.1/source.json": "15dd7e13dc303f7fcde2b55300bcb8de5c0dd08a7a7269749cbbaa0fb1dfbe16", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", - "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9", - "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", - "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", - "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014", - "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d", + "https://bcr.bazel.build/modules/rules_python/1.5.3/MODULE.bazel": "d0b7fb08458ca7fd80a26bc00c9e0f1d011609cc3da0381faa2eccd88c6ebd98", + "https://bcr.bazel.build/modules/rules_python/1.5.3/source.json": "06961e322e15331a2d88115a65af5d3f77cc46793f9d9aa0f928b95287337f12", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", - "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/source.json": "deed3094f7cc779ed1d37a68403847b0e38d9dd9d931e03cb90825f3368b515f", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", - "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", + "https://bcr.bazel.build/modules/yq.bzl/0.2.0/source.json": "ff33c6f75da6848caade494240b6824cf00e7e6b8892100f4253984e1dfae2af", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", - "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d" + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" }, "selectedYankedVersions": {}, "moduleExtensions": { @@ -89,20 +200,2850 @@ ] } }, - "@@platforms//host:extension.bzl%host_platform": { + "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=", - "usagesDigest": "pCYpDQmqMbmiiPI1p2Kd3VLm5T48rRAht5WdW0X2GlA=", + "bzlTransitiveDigest": "73CpZPjP7vEyFM9OekAg3uSwvTB2xjp4/poCF2+3eVk=", + "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, "generatedRepoSpecs": { - "host_platform": { - "bzlFile": "@@platforms//host:extension.bzl", - "ruleClassName": "host_platform_repo", + "esbuild_darwin-x64": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl", + "ruleClassName": "esbuild_repositories", + "attributes": { + "esbuild_version": "0.19.9", + "platform": "darwin-x64" + } + }, + "esbuild_darwin-arm64": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl", + "ruleClassName": "esbuild_repositories", + "attributes": { + "esbuild_version": "0.19.9", + "platform": "darwin-arm64" + } + }, + "esbuild_linux-x64": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl", + "ruleClassName": "esbuild_repositories", + "attributes": { + "esbuild_version": "0.19.9", + "platform": "linux-x64" + } + }, + "esbuild_linux-arm64": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl", + "ruleClassName": "esbuild_repositories", + "attributes": { + "esbuild_version": "0.19.9", + "platform": "linux-arm64" + } + }, + "esbuild_win32-x64": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl", + "ruleClassName": "esbuild_repositories", + "attributes": { + "esbuild_version": "0.19.9", + "platform": "win32-x64" + } + }, + "esbuild_toolchains": { + "bzlFile": "@@aspect_rules_esbuild~//esbuild/private:toolchains_repo.bzl", + "ruleClassName": "toolchains_repo", + "attributes": { + "esbuild_version": "0.19.9", + "user_repository_name": "esbuild" + } + }, + "npm__esbuild_0.19.9": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_rule", + "attributes": { + "package": "esbuild", + "version": "0.19.9", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "", + "generate_bzl_library_targets": false, + "extract_full_archive": false, + "exclude_package_contents": [], + "system_tar": "auto" + } + }, + "npm__esbuild_0.19.9__links": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_links", + "attributes": { + "package": "esbuild", + "version": "0.19.9", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "", + "exclude_package_contents": [] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_bazel_lib~", + "tar.bzl", + "tar.bzl~" + ], + [ + "aspect_rules_esbuild~", + "aspect_rules_js", + "aspect_rules_js~" + ], + [ + "aspect_rules_esbuild~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_rules_js~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_rules_js~", + "aspect_rules_js", + "aspect_rules_js~" + ], + [ + "aspect_rules_js~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_rules_js~", + "bazel_tools", + "bazel_tools" + ], + [ + "tar.bzl~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "tar.bzl~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "tar.bzl~", + "tar.bzl", + "tar.bzl~" + ] + ] + } + }, + "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "8j0b3nFWNDqbr6G01xANzp5AVkacJrXmbMs0r/gLu5Y=", + "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true, + "exclude_package_contents": [], + "system_tar": "auto" + } + }, + "pnpm__links": { + "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl", + "ruleClassName": "npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "", + "exclude_package_contents": [] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_bazel_lib~", + "tar.bzl", + "tar.bzl~" + ], + [ + "aspect_rules_js~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_rules_js~", + "aspect_rules_js", + "aspect_rules_js~" + ], + [ + "aspect_rules_js~", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" + ], + [ + "aspect_rules_js~", + "bazel_features", + "bazel_features~" + ], + [ + "aspect_rules_js~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_rules_js~", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features~", + "bazel_features_globals", + "bazel_features~~version_extension~bazel_features_globals" + ], + [ + "bazel_features~", + "bazel_features_version", + "bazel_features~~version_extension~bazel_features_version" + ], + [ + "tar.bzl~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "tar.bzl~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "tar.bzl~", + "tar.bzl", + "tar.bzl~" + ] + ] + } + }, + "@@aspect_rules_ts~//ts:extensions.bzl%ext": { + "general": { + "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", + "usagesDigest": "fJ++KXntfJ2Opa+e9MJ7EUkqyvttg+5a7tz5WWKORjY=", + "recordedFileInputs": { + "@@//package.json": "7e399af4e7cbe55613319a6d1096172170242543b64dd37e0d3a4b02e9049b71", + "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", + "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "angular_cli_npm_typescript": { + "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", + "ruleClassName": "http_archive_version", + "attributes": { + "bzlmod": true, + "version": "", + "version_from": "@@//:package.json", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", + "build_file_substitutions": { + "bazel_worker_version": "5.4.2", + "google_protobuf_version": "3.20.1" + }, + "urls": [ + "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" + ] + } + }, + "rules_angular_npm_typescript": { + "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", + "ruleClassName": "http_archive_version", + "attributes": { + "bzlmod": true, + "version": "5.9.2", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", + "build_file_substitutions": { + "bazel_worker_version": "5.4.2", + "google_protobuf_version": "3.20.1" + }, + "urls": [ + "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" + ] + } + }, + "npm_typescript": { + "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", + "ruleClassName": "http_archive_version", + "attributes": { + "bzlmod": true, + "version": "", + "version_from": "@@devinfra~//bazel:package.json", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", + "build_file_substitutions": { + "bazel_worker_version": "5.4.2", + "google_protobuf_version": "3.20.1" + }, + "urls": [ + "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" + ] + } + }, + "npm_rules_browsers_typescript": { + "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", + "ruleClassName": "http_archive_version", + "attributes": { + "bzlmod": true, + "version": "", + "version_from": "@@rules_browsers~//:package.json", + "integrity": "", + "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", + "build_file_substitutions": { + "bazel_worker_version": "5.4.2", + "google_protobuf_version": "3.20.1" + }, + "urls": [ + "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_rules_ts~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cLuD0cAZWm2SwvVSu2NHX+0x33L7A5+Shk+6Qcw9oik=", + "usagesDigest": "+wlgnpY3uHPdBIF0xJrM3S4M8VNpQumRmF42FjBGSE4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "bzlFile": "@@aspect_tools_telemetry~//:extension.bzl", + "ruleClassName": "tel_repository", + "attributes": { + "deps": { + "aspect_rules_js": "2.4.2", + "aspect_tools_telemetry": "0.2.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_tools_telemetry~", + "bazel_skylib", + "bazel_skylib~" + ] + ] + } + }, + "@@pybind11_bazel~//:python_configure.bzl%extension": { + "general": { + "bzlTransitiveDigest": "whINYge95GgPtysKDbNHQ0ZlWYdtKybHs5y2tLF+x7Q=", + "usagesDigest": "gNvOHVcAlwgDsNXD0amkv2CC96mnaCThPQoE44y8K+w=", + "recordedFileInputs": { + "@@pybind11_bazel~//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_python": { + "bzlFile": "@@pybind11_bazel~//:python_configure.bzl", + "ruleClassName": "python_configure", + "attributes": {} + }, + "pybind11": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "build_file": "@@pybind11_bazel~//:pybind11.BUILD", + "strip_prefix": "pybind11-2.11.1", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.11.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_angular~//setup:extensions.bzl%rules_angular": { + "general": { + "bzlTransitiveDigest": "fkaH7HMicL3g7/NDaFzlq39kcLopMyQ3KdbDn+5CRzA=", + "usagesDigest": "4vjoXp94lW/cnp3G5Nbi6SdqHuFBsaA7m/u83of5HE8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "components_rules_angular_configurable_deps": { + "bzlFile": "@@rules_angular~//setup:repositories.bzl", + "ruleClassName": "configurable_deps_repo", + "attributes": { + "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli", + "typescript": "@@rules_angular~//:node_modules/typescript" + } + }, + "rules_angular_configurable_deps": { + "bzlFile": "@@rules_angular~//setup:repositories.bzl", + "ruleClassName": "configurable_deps_repo", + "attributes": { + "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli", + "typescript": "@@rules_angular~//:node_modules/typescript-local" + } + }, + "dev_infra_rules_angular_configurable_deps": { + "bzlFile": "@@rules_angular~//setup:repositories.bzl", + "ruleClassName": "configurable_deps_repo", + "attributes": { + "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli", + "typescript": "@@rules_angular~//:node_modules/typescript-local" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_browsers~//browsers:extensions.bzl%browsers": { + "general": { + "bzlTransitiveDigest": "ep2OrXzFai22oPOQwhS3aeTWxT9Jn6Us7ws4lRa4bU8=", + "usagesDigest": "78aLbl2cYObLkrJFomb3ZkfFUiUFbqzqZK8lnW+Y7Uk=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "rules_browsers_chrome_linux": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "14086c6c0844122d4066a5e3a846b963259648945d7fb6c51b520f2105edd597", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chrome-headless-shell-linux64.zip" + ], + "named_files": { + "CHROME-HEADLESS-SHELL": "chrome-headless-shell-linux64/chrome-headless-shell" + }, + "exclude_patterns": [ + "**/*.log" + ], + "exports_files": [ + "chrome-headless-shell-linux64/chrome-headless-shell" + ] + } + }, + "rules_browsers_chrome_mac": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "fa2ff20c870e289511cdde481d069f167e403d289b91b1d9d063dd7b2f77ed6e", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chrome-headless-shell-mac-x64.zip" + ], + "named_files": { + "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-x64/chrome-headless-shell" + }, + "exclude_patterns": [ + "**/*.log" + ], + "exports_files": [ + "chrome-headless-shell-mac-x64/chrome-headless-shell" + ] + } + }, + "rules_browsers_chrome_mac_arm": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "cbb938bd24ed648280e3654592c46f7eb8e2e184ca331f2138816bd59fcaed32", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chrome-headless-shell-mac-arm64.zip" + ], + "named_files": { + "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-arm64/chrome-headless-shell" + }, + "exclude_patterns": [ + "**/*.log" + ], + "exports_files": [ + "chrome-headless-shell-mac-arm64/chrome-headless-shell" + ] + } + }, + "rules_browsers_chrome_win64": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "68bf73ab78647e697bf7b81e8329f23c1331d8792af6e2ab66553aeb9ede9cd3", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chrome-headless-shell-win64.zip" + ], + "named_files": { + "CHROME-HEADLESS-SHELL": "chrome-headless-shell-win64/chrome-headless-shell.exe" + }, + "exclude_patterns": [ + "**/*.log" + ], + "exports_files": [ + "chrome-headless-shell-win64/chrome-headless-shell.exe" + ] + } + }, + "rules_browsers_chromedriver_linux": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "ec29104132a6ff1ae5f2ffe7b27b7ff675a58ab9b1ef616badcbdd35577b31b3", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chromedriver-linux64.zip" + ], + "named_files": { + "CHROMEDRIVER": "chromedriver-linux64/chromedriver" + }, + "exclude_patterns": [], + "exports_files": [ + "chromedriver-linux64/chromedriver" + ] + } + }, + "rules_browsers_chromedriver_mac": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "2b9787f5f758c9f3e3888ac23270f8de47b168679718a4440bd1cea2b3cc57e9", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chromedriver-mac-x64.zip" + ], + "named_files": { + "CHROMEDRIVER": "chromedriver-mac-x64/chromedriver" + }, + "exclude_patterns": [], + "exports_files": [ + "chromedriver-mac-x64/chromedriver" + ] + } + }, + "rules_browsers_chromedriver_mac_arm": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "6da850508d250c00c10b09dcac00c97a58d51346047972c2c47d3e3b850d4662", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chromedriver-mac-arm64.zip" + ], + "named_files": { + "CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver" + }, + "exclude_patterns": [], + "exports_files": [ + "chromedriver-mac-arm64/chromedriver" + ] + } + }, + "rules_browsers_chromedriver_win64": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "d4af3e6c8f3a7ceb50ff298e43ff07efcad46c1d6ceb0d894eeb2d593db7e522", + "urls": [ + "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chromedriver-win64.zip" + ], + "named_files": { + "CHROMEDRIVER": "chromedriver-win64/chromedriver.exe" + }, + "exclude_patterns": [], + "exports_files": [ + "chromedriver-win64/chromedriver.exe" + ] + } + }, + "rules_browsers_firefox_linux": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "6fcc1a2f95a6b232af82b4b7644566638c5df349e3095c65b7c18d1a63412d3d", + "urls": [ + "https://archive.mozilla.org/pub/firefox/releases/135.0/linux-x86_64/en-US/firefox-135.0.tar.xz" + ], + "named_files": { + "FIREFOX": "firefox/firefox" + }, + "exclude_patterns": [], + "exports_files": [ + "firefox/firefox" + ] + } + }, + "rules_browsers_firefox_mac": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9", + "urls": [ + "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg" + ], + "named_files": { + "FIREFOX": "Firefox.app/Contents/MacOS/firefox" + }, + "exclude_patterns": [], + "exports_files": [ + "Firefox.app/Contents/MacOS/firefox" + ] + } + }, + "rules_browsers_firefox_mac_arm": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9", + "urls": [ + "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg" + ], + "named_files": { + "FIREFOX": "Firefox.app/Contents/MacOS/firefox" + }, + "exclude_patterns": [], + "exports_files": [ + "Firefox.app/Contents/MacOS/firefox" + ] + } + }, + "rules_browsers_firefox_win64": { + "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", + "ruleClassName": "browser_repo", + "attributes": { + "sha256": "f46d3cb68caa4d4366b942c225d256e0fc15a189263cd9efe29eff0dbfe02685", + "urls": [ + "https://archive.mozilla.org/pub/firefox/releases/135.0/win64/en-US/Firefox%20Setup%20135.0.exe" + ], + "named_files": { + "FIREFOX": "core/firefox.exe" + }, + "exclude_patterns": [], + "exports_files": [ + "core/firefox.exe" + ] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_fuzzing~//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "hVgJRQ3Er45/UUAgNn1Yp2Khcp/Y8WyafA2kXIYmQ5M=", + "usagesDigest": "YnIrdgwnf3iCLfChsltBdZ7yOJh706lpa2vww/i2pDI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "bzlFile": "@@rules_fuzzing~//fuzzing/private/oss_fuzz:repository.bzl", + "ruleClassName": "oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "build_file": "@@rules_fuzzing~//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_java~//java:rules_java_deps.bzl%compatibility_proxy": { + "general": { + "bzlTransitiveDigest": "KIX40nDfygEWbU+rq3nYpt3tVgTK/iO8PKh5VMBlN7M=", + "usagesDigest": "pwHZ+26iLgQdwvdZeA5wnAjKnNI3y6XO2VbhOTeo5h8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "compatibility_proxy": { + "bzlFile": "@@rules_java~//java:rules_java_deps.bzl", + "ruleClassName": "_compatibility_proxy_repo_rule", "attributes": {} } }, + "recordedRepoMappingEntries": [ + [ + "rules_java~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "fus14IFJ/1LGWWGKPH/U18VnJCoMjfDt1ckahqCnM0A=", + "usagesDigest": "aJF6fLy82rR95Ff5CZPAqxNoFgOMLMN5ImfBS0nhnkg=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl", + "ruleClassName": "kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl", + "ruleClassName": "kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:ksp.bzl", + "ruleClassName": "ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_nodejs~//nodejs:extensions.bzl%node": { + "general": { + "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", + "usagesDigest": "VNegJE3knt/5h/JL13vq4QFPKu3BPExCdxvNCt/D3Yg=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "nodejs_linux_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "nodejs_linux_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "nodejs_linux_s390x": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "nodejs_linux_ppc64le": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "nodejs_darwin_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "nodejs_darwin_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "nodejs_windows_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "nodejs_windows_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "windows_arm64" + } + }, + "nodejs": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_host": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "nodejs_toolchains": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl", + "ruleClassName": "nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "nodejs" + } + }, + "node20_linux_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "node20_linux_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "node20_linux_s390x": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "node20_linux_ppc64le": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "node20_darwin_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "node20_darwin_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "node20_windows_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "node20_windows_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "20.19.0-darwin_arm64": [ + "node-v20.19.0-darwin-arm64.tar.gz", + "node-v20.19.0-darwin-arm64", + "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" + ], + "20.19.0-darwin_amd64": [ + "node-v20.19.0-darwin-x64.tar.gz", + "node-v20.19.0-darwin-x64", + "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" + ], + "20.19.0-linux_arm64": [ + "node-v20.19.0-linux-arm64.tar.xz", + "node-v20.19.0-linux-arm64", + "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" + ], + "20.19.0-linux_ppc64le": [ + "node-v20.19.0-linux-ppc64le.tar.xz", + "node-v20.19.0-linux-ppc64le", + "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" + ], + "20.19.0-linux_s390x": [ + "node-v20.19.0-linux-s390x.tar.xz", + "node-v20.19.0-linux-s390x", + "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" + ], + "20.19.0-linux_amd64": [ + "node-v20.19.0-linux-x64.tar.xz", + "node-v20.19.0-linux-x64", + "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" + ], + "20.19.0-windows_amd64": [ + "node-v20.19.0-win-x64.zip", + "node-v20.19.0-win-x64", + "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "20.19.0", + "include_headers": false, + "platform": "windows_arm64" + } + }, + "node20": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node20" + } + }, + "node20_host": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node20" + } + }, + "node20_toolchains": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl", + "ruleClassName": "nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "node20" + } + }, + "node22_linux_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "node22_linux_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "node22_linux_s390x": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "node22_linux_ppc64le": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "node22_darwin_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "node22_darwin_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "node22_windows_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "node22_windows_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "22.12.0-darwin_arm64": [ + "node-v22.12.0-darwin-arm64.tar.gz", + "node-v22.12.0-darwin-arm64", + "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" + ], + "22.12.0-darwin_amd64": [ + "node-v22.12.0-darwin-x64.tar.gz", + "node-v22.12.0-darwin-x64", + "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" + ], + "22.12.0-linux_arm64": [ + "node-v22.12.0-linux-arm64.tar.xz", + "node-v22.12.0-linux-arm64", + "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" + ], + "22.12.0-linux_ppc64le": [ + "node-v22.12.0-linux-ppc64le.tar.xz", + "node-v22.12.0-linux-ppc64le", + "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" + ], + "22.12.0-linux_s390x": [ + "node-v22.12.0-linux-s390x.tar.xz", + "node-v22.12.0-linux-s390x", + "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" + ], + "22.12.0-linux_amd64": [ + "node-v22.12.0-linux-x64.tar.xz", + "node-v22.12.0-linux-x64", + "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" + ], + "22.12.0-windows_amd64": [ + "node-v22.12.0-win-x64.zip", + "node-v22.12.0-win-x64", + "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "22.12.0", + "include_headers": false, + "platform": "windows_arm64" + } + }, + "node22": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node22" + } + }, + "node22_host": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node22" + } + }, + "node22_toolchains": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl", + "ruleClassName": "nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "node22" + } + }, + "node24_linux_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_amd64" + } + }, + "node24_linux_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_arm64" + } + }, + "node24_linux_s390x": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_s390x" + } + }, + "node24_linux_ppc64le": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "linux_ppc64le" + } + }, + "node24_darwin_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "darwin_amd64" + } + }, + "node24_darwin_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "darwin_arm64" + } + }, + "node24_windows_amd64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "windows_amd64" + } + }, + "node24_windows_arm64": { + "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl", + "ruleClassName": "_nodejs_repositories", + "attributes": { + "node_download_auth": {}, + "node_repositories": { + "24.0.0-darwin_arm64": [ + "node-v24.0.0-darwin-arm64.tar.gz", + "node-v24.0.0-darwin-arm64", + "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" + ], + "24.0.0-darwin_amd64": [ + "node-v24.0.0-darwin-x64.tar.gz", + "node-v24.0.0-darwin-x64", + "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" + ], + "24.0.0-linux_arm64": [ + "node-v24.0.0-linux-arm64.tar.xz", + "node-v24.0.0-linux-arm64", + "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" + ], + "24.0.0-linux_ppc64le": [ + "node-v24.0.0-linux-ppc64le.tar.xz", + "node-v24.0.0-linux-ppc64le", + "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" + ], + "24.0.0-linux_s390x": [ + "node-v24.0.0-linux-s390x.tar.xz", + "node-v24.0.0-linux-s390x", + "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" + ], + "24.0.0-linux_amd64": [ + "node-v24.0.0-linux-x64.tar.xz", + "node-v24.0.0-linux-x64", + "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" + ], + "24.0.0-windows_amd64": [ + "node-v24.0.0-win-x64.zip", + "node-v24.0.0-win-x64", + "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" + ] + }, + "node_urls": [ + "https://nodejs.org/dist/v{version}/{filename}" + ], + "node_version": "24.0.0", + "include_headers": false, + "platform": "windows_arm64" + } + }, + "node24": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node24" + } + }, + "node24_host": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl", + "ruleClassName": "nodejs_repo_host_os_alias", + "attributes": { + "user_node_repository_name": "node24" + } + }, + "node24_toolchains": { + "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl", + "ruleClassName": "nodejs_toolchains_repo", + "attributes": { + "user_node_repository_name": "node24" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_python~//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "mxPY/VBQrSC9LvYeRrlxD+0IkDTQ4+36NGMnGWlN/Vw=", + "usagesDigest": "cgxWLOUNY3lbTVCUxf/uOAgiV2TBcy1fpOASyjfLjHU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "bzlFile": "@@rules_python~//python/uv/private:uv_toolchains_repo.bzl", + "ruleClassName": "uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python~//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python~//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python~", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python~", + "platforms", + "platforms" + ] + ] + } + }, + "@@rules_sass~//src/toolchain:extensions.bzl%sass": { + "general": { + "bzlTransitiveDigest": "+GauQp6nWf/mHsJ/XVWUL2JTuC15MuxATrVcAgDpclc=", + "usagesDigest": "FPXQ5+6+DFGdSdCMXLwFaruzstMFlLH6N0TRxi0sSH8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "linux_amd64_sass": { + "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl", + "ruleClassName": "configure_sass", + "attributes": { + "file": "@rules_sass//src/compiler/built:sass_linux_x64", + "sha256": "", + "constraints": [ + "@@platforms//os:linux", + "@@platforms//cpu:x86_64" + ] + } + }, + "darwin_amd64_sass": { + "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl", + "ruleClassName": "configure_sass", + "attributes": { + "file": "@rules_sass//src/compiler/built:sass_mac_x64", + "sha256": "", + "constraints": [ + "@@platforms//os:macos", + "@@platforms//cpu:x86_64" + ] + } + }, + "darwin_arm64_sass": { + "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl", + "ruleClassName": "configure_sass", + "attributes": { + "file": "@rules_sass//src/compiler/built:sass_mac_arm", + "sha256": "", + "constraints": [ + "@@platforms//os:macos", + "@@platforms//cpu:arm64" + ] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@tar.bzl~//tar:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", + "usagesDigest": "I6HvqeURBJAsVftolZUnMjAJqsIpyPsnCw4Sngx2dSg=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "bsd_tar_toolchains": { + "bzlFile": "@@tar.bzl~//tar/toolchain:toolchain.bzl", + "ruleClassName": "tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar_toolchains" + } + }, + "bsd_tar_toolchains_darwin_amd64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_toolchains_darwin_arm64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_toolchains_linux_amd64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "bsd_tar_toolchains_linux_arm64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_toolchains_windows_amd64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "bsd_tar_toolchains_windows_arm64": { + "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "windows_arm64" + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@yq.bzl~//yq:extensions.bzl%yq": { + "general": { + "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", + "usagesDigest": "aPwG8k9scmFMv3dtS84dXq/OIbovpOzBLa/ZDS1QvlQ=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "yq_darwin_amd64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.45.1" + } + }, + "yq_darwin_arm64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.45.1" + } + }, + "yq_linux_amd64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.45.1" + } + }, + "yq_linux_arm64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.45.1" + } + }, + "yq_linux_s390x": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.45.1" + } + }, + "yq_linux_riscv64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_riscv64", + "version": "4.45.1" + } + }, + "yq_linux_ppc64le": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.45.1" + } + }, + "yq_windows_amd64": { + "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.45.1" + } + }, + "yq_toolchains": { + "bzlFile": "@@yq.bzl~//yq/toolchain:toolchain.bzl", + "ruleClassName": "yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + } + }, "recordedRepoMappingEntries": [] } } diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 6364ff2ac3cb..000000000000 --- a/WORKSPACE +++ /dev/null @@ -1,294 +0,0 @@ -workspace(name = "angular_cli") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") - -http_archive( - name = "bazel_skylib", - sha256 = "51b5105a760b353773f904d2bbc5e664d0987fbaf22265164de65d43e910d8ac", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz", - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz", - ], -) - -http_archive( - name = "io_bazel_rules_webtesting", - sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", - urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz"], -) - -http_archive( - name = "aspect_rules_js", - sha256 = "b71565da7a811964e30cccb405544d551561e4b56c65f0c0aeabe85638920bd6", - strip_prefix = "rules_js-2.4.2", - url = "https://github.com/aspect-build/rules_js/releases/download/v2.4.2/rules_js-v2.4.2.tar.gz", -) - -load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") - -rules_js_dependencies() - -http_archive( - name = "rules_pkg", - sha256 = "8c20f74bca25d2d442b327ae26768c02cf3c99e93fad0381f32be9aab1967675", - urls = ["https://github.com/bazelbuild/rules_pkg/releases/download/0.8.1/rules_pkg-0.8.1.tar.gz"], -) - -load("@bazel_tools//tools/sh:sh_configure.bzl", "sh_configure") - -sh_configure() - -load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") - -bazel_skylib_workspace() - -load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") - -rules_pkg_dependencies() - -# Setup the Node.js toolchain -load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") - -# Set the default nodejs toolchain to the latest supported major version - -NODE_24_VERSION = "24.0.0" - -NODE_24_REPO = { - "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"), - "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"), - "24.0.0-linux_arm64": ("node-v24.0.0-linux-arm64.tar.xz", "node-v24.0.0-linux-arm64", "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"), - "24.0.0-linux_ppc64le": ("node-v24.0.0-linux-ppc64le.tar.xz", "node-v24.0.0-linux-ppc64le", "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"), - "24.0.0-linux_s390x": ("node-v24.0.0-linux-s390x.tar.xz", "node-v24.0.0-linux-s390x", "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"), - "24.0.0-linux_amd64": ("node-v24.0.0-linux-x64.tar.xz", "node-v24.0.0-linux-x64", "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"), - "24.0.0-windows_amd64": ("node-v24.0.0-win-x64.zip", "node-v24.0.0-win-x64", "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"), -} - -nodejs_register_toolchains( - name = "nodejs", - node_repositories = NODE_24_REPO, - node_version = NODE_24_VERSION, -) - -nodejs_register_toolchains( - name = "node20", - node_repositories = { - "20.19.0-darwin_arm64": ("node-v20.19.0-darwin-arm64.tar.gz", "node-v20.19.0-darwin-arm64", "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c"), - "20.19.0-darwin_amd64": ("node-v20.19.0-darwin-x64.tar.gz", "node-v20.19.0-darwin-x64", "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20"), - "20.19.0-linux_arm64": ("node-v20.19.0-linux-arm64.tar.xz", "node-v20.19.0-linux-arm64", "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9"), - "20.19.0-linux_ppc64le": ("node-v20.19.0-linux-ppc64le.tar.xz", "node-v20.19.0-linux-ppc64le", "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65"), - "20.19.0-linux_s390x": ("node-v20.19.0-linux-s390x.tar.xz", "node-v20.19.0-linux-s390x", "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a"), - "20.19.0-linux_amd64": ("node-v20.19.0-linux-x64.tar.xz", "node-v20.19.0-linux-x64", "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5"), - "20.19.0-windows_amd64": ("node-v20.19.0-win-x64.zip", "node-v20.19.0-win-x64", "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f"), - }, - node_version = "20.19.0", -) - -nodejs_register_toolchains( - name = "node22", - node_repositories = { - "22.12.0-darwin_arm64": ("node-v22.12.0-darwin-arm64.tar.gz", "node-v22.12.0-darwin-arm64", "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13"), - "22.12.0-darwin_amd64": ("node-v22.12.0-darwin-x64.tar.gz", "node-v22.12.0-darwin-x64", "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173"), - "22.12.0-linux_arm64": ("node-v22.12.0-linux-arm64.tar.xz", "node-v22.12.0-linux-arm64", "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68"), - "22.12.0-linux_ppc64le": ("node-v22.12.0-linux-ppc64le.tar.xz", "node-v22.12.0-linux-ppc64le", "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004"), - "22.12.0-linux_s390x": ("node-v22.12.0-linux-s390x.tar.xz", "node-v22.12.0-linux-s390x", "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35"), - "22.12.0-linux_amd64": ("node-v22.12.0-linux-x64.tar.xz", "node-v22.12.0-linux-x64", "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f"), - "22.12.0-windows_amd64": ("node-v22.12.0-win-x64.zip", "node-v22.12.0-win-x64", "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8"), - }, - node_version = "22.12.0", -) - -nodejs_register_toolchains( - name = "node24", - node_repositories = NODE_24_REPO, - node_version = NODE_24_VERSION, -) - -load("@aspect_rules_js//js:toolchains.bzl", "rules_js_register_toolchains") - -rules_js_register_toolchains( - node_repositories = NODE_24_REPO, - node_version = NODE_24_VERSION, -) - -http_archive( - name = "aspect_bazel_lib", - sha256 = "3522895fa13b97e8b27e3b642045682aa4233ae1a6b278aad6a3b483501dc9f2", - strip_prefix = "bazel-lib-2.20.0", - url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.20.0/bazel-lib-v2.20.0.tar.gz", -) - -load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "aspect_bazel_lib_register_toolchains") - -aspect_bazel_lib_dependencies() - -aspect_bazel_lib_register_toolchains() - -load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") - -npm_translate_lock( - name = "npm", - custom_postinstalls = { - # TODO: Standardize browser management for `rules_js` - "webdriver-manager": "node ./bin/webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21", - }, - data = [ - "//:package.json", - "//:pnpm-workspace.yaml", - "//modules/testing/builder:package.json", - "//packages/angular/build:package.json", - "//packages/angular/cli:package.json", - "//packages/angular/pwa:package.json", - "//packages/angular/ssr:package.json", - "//packages/angular_devkit/architect:package.json", - "//packages/angular_devkit/architect_cli:package.json", - "//packages/angular_devkit/build_angular:package.json", - "//packages/angular_devkit/build_webpack:package.json", - "//packages/angular_devkit/core:package.json", - "//packages/angular_devkit/schematics:package.json", - "//packages/angular_devkit/schematics_cli:package.json", - "//packages/ngtools/webpack:package.json", - "//packages/schematics/angular:package.json", - "//tests:package.json", - "//tools/baseline_browserslist:package.json", - ], - lifecycle_hooks_envs = { - # TODO: Standardize browser management for `rules_js` - "puppeteer": ["PUPPETEER_DOWNLOAD_PATH=./downloads"], - }, - lifecycle_hooks_execution_requirements = { - # Needed for downloading chromedriver. - # Also `update-config` of webdriver manager would store an absolute path; - # which would then break execution. - "webdriver-manager": ["local"], - }, - npmrc = "//:.npmrc", - patches = { - # Note: Patches not needed as the existing patches are only - # for `rules_nodejs` dependencies :) - }, - pnpm_lock = "//:pnpm-lock.yaml", - public_hoist_packages = { - # TODO: Remove when https://github.com/verdaccio/verdaccio/commit/bf0e09a509e8e0a74167b0307d129202bc3f40d2 is available. - "@verdaccio/config": [""], - }, - verify_node_modules_ignored = "//:.bazelignore", -) - -load("@npm//:repositories.bzl", "npm_repositories") - -npm_repositories() - -http_archive( - name = "aspect_rules_ts", - sha256 = "09af62a0d46918d815b5f48b5ed0f5349b62c15fc42fcc3fef5c246504ff8d99", - strip_prefix = "rules_ts-3.6.3", - url = "https://github.com/aspect-build/rules_ts/releases/download/v3.6.3/rules_ts-v3.6.3.tar.gz", -) - -load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") - -rules_ts_dependencies( - # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity' - ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - ts_version_from = "//:package.json", -) - -http_file( - name = "tsc_worker", - sha256 = "5a5c46846ecda83e05b9da26f1672ad51c59bce08fed88419850d0e29c993b30", - urls = ["https://raw.githubusercontent.com/devversion/rules_angular/4b7532ba2b29078d005899cd15b415593d03cceb/dist/worker.mjs"], -) - -http_archive( - name = "aspect_rules_jasmine", - sha256 = "0d2f9c977842685895020cac721d8cc4f1b37aae15af46128cf619741dc61529", - strip_prefix = "rules_jasmine-2.0.0", - url = "https://github.com/aspect-build/rules_jasmine/releases/download/v2.0.0/rules_jasmine-v2.0.0.tar.gz", -) - -load("@aspect_rules_jasmine//jasmine:dependencies.bzl", "rules_jasmine_dependencies") - -rules_jasmine_dependencies() - -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") - -git_repository( - name = "devinfra", - commit = "fbdd8b7df383ae8fb34907a98353c1e8f0f5e528", - remote = "https://github.com/angular/dev-infra.git", -) - -load("@devinfra//bazel:setup_dependencies_1.bzl", "setup_dependencies_1") - -setup_dependencies_1() - -load("@devinfra//bazel:setup_dependencies_2.bzl", "setup_dependencies_2") - -setup_dependencies_2() - -register_toolchains( - "@devinfra//bazel/git-toolchain:git_linux_toolchain", - "@devinfra//bazel/git-toolchain:git_macos_x86_toolchain", - "@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain", - "@devinfra//bazel/git-toolchain:git_windows_toolchain", -) - -http_archive( - name = "aspect_rules_esbuild", - sha256 = "530adfeae30bbbd097e8af845a44a04b641b680c5703b3bf885cbd384ffec779", - strip_prefix = "rules_esbuild-0.22.1", - url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.22.1/rules_esbuild-v0.22.1.tar.gz", -) - -load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies") - -rules_esbuild_dependencies() - -load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains") - -esbuild_register_toolchains( - name = "esbuild", - esbuild_version = LATEST_ESBUILD_VERSION, -) - -git_repository( - name = "rules_angular", - commit = "c8af5c0d27c66387e9e7df3c4dd3155ce7582609", - remote = "https://github.com/devversion/rules_angular.git", -) - -load("@rules_angular//setup:step_1.bzl", "rules_angular_step1") - -rules_angular_step1() - -load("@rules_angular//setup:step_2.bzl", "rules_angular_step2") - -rules_angular_step2() - -load("@rules_angular//setup:step_3.bzl", "rules_angular_step3") - -rules_angular_step3( - angular_compiler_cli = "//:node_modules/@angular/compiler-cli", - typescript = "//:node_modules/typescript", -) - -http_archive( - name = "aspect_rules_rollup", - sha256 = "0b8ac7d97cd660eb9a275600227e9c4268f5904cba962939d1a6ce9a0a059d2e", - strip_prefix = "rules_rollup-2.0.1", - url = "https://github.com/aspect-build/rules_rollup/releases/download/v2.0.1/rules_rollup-v2.0.1.tar.gz", -) - -git_repository( - name = "rules_browsers", - commit = "c9a70ad79258e2ffc498075623f9f974920a4025", - remote = "https://github.com/devversion/rules_browsers.git", -) - -load("@rules_browsers//setup:step_1.bzl", "rules_browsers_setup_1") - -rules_browsers_setup_1() - -load("@rules_browsers//setup:step_2.bzl", "rules_browsers_setup_2") - -rules_browsers_setup_2() diff --git a/tests/legacy-cli/BUILD.bazel b/tests/legacy-cli/BUILD.bazel index c148aba86de5..0b66850c52b2 100644 --- a/tests/legacy-cli/BUILD.bazel +++ b/tests/legacy-cli/BUILD.bazel @@ -67,7 +67,6 @@ e2e_suites( # Extra runtime deps due to bundling issues. # TODO: Clean this up. - "//:node_modules/@verdaccio/config", "//:node_modules/express", ], runner = ":runner_entrypoint", diff --git a/tests/legacy-cli/e2e.bzl b/tests/legacy-cli/e2e.bzl index b275b7185e30..57ed1da1bebf 100644 --- a/tests/legacy-cli/e2e.bzl +++ b/tests/legacy-cli/e2e.bzl @@ -117,8 +117,8 @@ def _e2e_tests(name, runner, toolchain, **kwargs): "CHROME_PATH": "$(CHROME-HEADLESS-SHELL)", "CHROMEDRIVER_BIN": "$(CHROMEDRIVER)", }) - toolchains = toolchains + ["@rules_browsers//src/browsers/chromium:toolchain_alias"] - data = data + ["@rules_browsers//src/browsers/chromium"] + toolchains = toolchains + ["@rules_browsers//browsers/chromium:toolchain_alias"] + data = data + ["@rules_browsers//browsers/chromium"] js_test( name = name, diff --git a/tools/bazel/npm_package.bzl b/tools/bazel/npm_package.bzl index 0a76bfe1bb73..d38cebef4579 100644 --- a/tools/bazel/npm_package.bzl +++ b/tools/bazel/npm_package.bzl @@ -45,7 +45,7 @@ def npm_package( pkg_label = to_label(pkg_dep) if pkg_label.name != "package.json": fail("ERROR: only package.json files allowed in pkg_deps of pkg_npm macro") - pkg_deps_copies.append("@%s//%s:package_json_copy" % (pkg_label.workspace_name, pkg_label.package)) + pkg_deps_copies.append("@@%s//%s:package_json_copy" % (pkg_label.repo_name, pkg_label.package)) # Substitute dependencies on other packages in this repo with tarballs. link_package_json_to_tarballs( diff --git a/tools/link_package_json_to_tarballs.bzl b/tools/link_package_json_to_tarballs.bzl index 38172e53acc9..1a8ea5a17486 100644 --- a/tools/link_package_json_to_tarballs.bzl +++ b/tools/link_package_json_to_tarballs.bzl @@ -41,7 +41,7 @@ def link_package_json_to_tarballs(name, src, pkg_deps, out): # for the tar for this package as that would create a circular dependency. pkg_label = to_label(pkg_dep) if pkg_label.package != src_pkg: - pkg_tar = "@%s//%s:npm_package_archive.tgz" % (pkg_label.workspace_name, pkg_label.package) + pkg_tar = "@@%s//%s:npm_package_archive.tgz" % (pkg_label.repo_name, pkg_label.package) srcs.append(pkg_tar) # Deriving the absolute path to the tar in the execroot requries different diff --git a/tools/toolchain_info.bzl b/tools/toolchain_info.bzl index 727a02abcae4..7cbeede0ca67 100644 --- a/tools/toolchain_info.bzl +++ b/tools/toolchain_info.bzl @@ -10,21 +10,9 @@ TOOLCHAINS_NAMES = [ # this is the list of toolchains that should be used and are registered with nodejs_register_toolchains in the WORKSPACE file TOOLCHAINS_VERSIONS = [ - select({ - "@bazel_tools//src/conditions:linux_x86_64": "@node20_linux_amd64//:node_toolchain", - "@bazel_tools//src/conditions:darwin": "@node20_darwin_amd64//:node_toolchain", - "@bazel_tools//src/conditions:windows": "@node20_windows_amd64//:node_toolchain", - }), - select({ - "@bazel_tools//src/conditions:linux_x86_64": "@node22_linux_amd64//:node_toolchain", - "@bazel_tools//src/conditions:darwin": "@node22_darwin_amd64//:node_toolchain", - "@bazel_tools//src/conditions:windows": "@node22_windows_amd64//:node_toolchain", - }), - select({ - "@bazel_tools//src/conditions:linux_x86_64": "@node24_linux_amd64//:node_toolchain", - "@bazel_tools//src/conditions:darwin": "@node24_darwin_amd64//:node_toolchain", - "@bazel_tools//src/conditions:windows": "@node24_windows_amd64//:node_toolchain", - }), + "@node20_toolchains//:resolved_toolchain", + "@node22_toolchains//:resolved_toolchain", + "@node24_toolchains//:resolved_toolchain", ] # A default toolchain for use when only one is necessary From ce2d32ea416bb89c8b035bb8ab91458660db62e0 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 19 Aug 2025 09:49:57 +0000 Subject: [PATCH 028/228] build: fix node.js toolchains setup This commit fixes the Node.js toolchain setup that is needed for bazel modules. --- MODULE.bazel | 87 ++++-- MODULE.bazel.lock | 614 ++------------------------------------- tools/test/BUILD.bazel | 2 +- tools/toolchain_info.bzl | 18 +- 4 files changed, 93 insertions(+), 628 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 60848392753c..b3ab84796a25 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -9,10 +9,22 @@ bazel_dep(name = "rules_nodejs", version = "6.5.0") bazel_dep(name = "aspect_rules_js", version = "2.4.2") bazel_dep(name = "aspect_rules_ts", version = "3.6.3") bazel_dep(name = "rules_pkg", version = "0.8.1") + # Alow for usage of rules_pkg@0.8.1 even though other deps want a later verison. -multiple_version_override(module_name="rules_pkg", versions = ["0.8.1", "1.1.0"]) +multiple_version_override( + module_name = "rules_pkg", + versions = [ + "0.8.1", + "1.1.0", + ], +) + bazel_dep(name = "rules_python", version = "1.5.3") -single_version_override(module_name="rules_python", version = "1.5.3") +single_version_override( + module_name = "rules_python", + version = "1.5.3", +) + bazel_dep(name = "aspect_bazel_lib", version = "2.20.0") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") @@ -23,18 +35,21 @@ git_override( commit = "a957283cdef0ade1fc6d1d7404f14577cebd3642", remote = "https://github.com/devversion/rules_angular.git", ) + bazel_dep(name = "devinfra") git_override( module_name = "devinfra", commit = "7a11f99c467ca5ae4411c27beeec4300e32b616a", remote = "https://github.com/angular/dev-infra.git", ) + bazel_dep(name = "rules_sass") git_override( module_name = "rules_sass", commit = "76078d5e9776a0080dcee496e90b88d8a6179c19", remote = "https://github.com/devversion/rules_sass.git", ) + bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", @@ -42,7 +57,9 @@ git_override( remote = "https://github.com/devversion/rules_browsers.git", ) +# The below is needed until https://github.com/bazel-contrib/rules_nodejs/pull/3853 is merged and released. NODE_24_VERSION = "24.0.0" + NODE_24_REPO = { "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"), "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"), @@ -60,43 +77,55 @@ node.toolchain( node_version = NODE_24_VERSION, ) use_repo(node, "nodejs_toolchains") +use_repo(node, "nodejs_darwin_amd64") +use_repo(node, "nodejs_darwin_arm64") +use_repo(node, "nodejs_linux_amd64") +use_repo(node, "nodejs_linux_arm64") +use_repo(node, "nodejs_linux_ppc64le") +use_repo(node, "nodejs_linux_s390x") +use_repo(node, "nodejs_windows_amd64") -node.toolchain( +node_dev = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True) + +# Node.js 20 +node_dev.toolchain( name = "node20", - node_repositories = { - "20.19.0-darwin_arm64": ("node-v20.19.0-darwin-arm64.tar.gz", "node-v20.19.0-darwin-arm64", "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c"), - "20.19.0-darwin_amd64": ("node-v20.19.0-darwin-x64.tar.gz", "node-v20.19.0-darwin-x64", "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20"), - "20.19.0-linux_arm64": ("node-v20.19.0-linux-arm64.tar.xz", "node-v20.19.0-linux-arm64", "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9"), - "20.19.0-linux_ppc64le": ("node-v20.19.0-linux-ppc64le.tar.xz", "node-v20.19.0-linux-ppc64le", "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65"), - "20.19.0-linux_s390x": ("node-v20.19.0-linux-s390x.tar.xz", "node-v20.19.0-linux-s390x", "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a"), - "20.19.0-linux_amd64": ("node-v20.19.0-linux-x64.tar.xz", "node-v20.19.0-linux-x64", "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5"), - "20.19.0-windows_amd64": ("node-v20.19.0-win-x64.zip", "node-v20.19.0-win-x64", "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f"), - }, node_version = "20.19.0", ) -use_repo(node, "node20_toolchains") +use_repo(node_dev, "node20_darwin_arm64") +use_repo(node_dev, "node20_darwin_amd64") +use_repo(node_dev, "node20_linux_amd64") +use_repo(node_dev, "node20_linux_arm64") +use_repo(node_dev, "node20_linux_s390x") +use_repo(node_dev, "node20_linux_ppc64le") +use_repo(node_dev, "node20_windows_amd64") -node.toolchain( +# Node.js 22 +node_dev.toolchain( name = "node22", - node_repositories = { - "22.12.0-darwin_arm64": ("node-v22.12.0-darwin-arm64.tar.gz", "node-v22.12.0-darwin-arm64", "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13"), - "22.12.0-darwin_amd64": ("node-v22.12.0-darwin-x64.tar.gz", "node-v22.12.0-darwin-x64", "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173"), - "22.12.0-linux_arm64": ("node-v22.12.0-linux-arm64.tar.xz", "node-v22.12.0-linux-arm64", "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68"), - "22.12.0-linux_ppc64le": ("node-v22.12.0-linux-ppc64le.tar.xz", "node-v22.12.0-linux-ppc64le", "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004"), - "22.12.0-linux_s390x": ("node-v22.12.0-linux-s390x.tar.xz", "node-v22.12.0-linux-s390x", "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35"), - "22.12.0-linux_amd64": ("node-v22.12.0-linux-x64.tar.xz", "node-v22.12.0-linux-x64", "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f"), - "22.12.0-windows_amd64": ("node-v22.12.0-win-x64.zip", "node-v22.12.0-win-x64", "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8"), - }, node_version = "22.12.0", ) -use_repo(node, "node22_toolchains") +use_repo(node_dev, "node22_darwin_arm64") +use_repo(node_dev, "node22_darwin_amd64") +use_repo(node_dev, "node22_linux_amd64") +use_repo(node_dev, "node22_linux_arm64") +use_repo(node_dev, "node22_linux_s390x") +use_repo(node_dev, "node22_linux_ppc64le") +use_repo(node_dev, "node22_windows_amd64") -node.toolchain( +# Node.js 24 +node_dev.toolchain( name = "node24", node_repositories = NODE_24_REPO, node_version = NODE_24_VERSION, ) -use_repo(node, "node24_toolchains") +use_repo(node_dev, "node24_darwin_arm64") +use_repo(node_dev, "node24_darwin_amd64") +use_repo(node_dev, "node24_linux_amd64") +use_repo(node_dev, "node24_linux_arm64") +use_repo(node_dev, "node24_linux_s390x") +use_repo(node_dev, "node24_linux_ppc64le") +use_repo(node_dev, "node24_windows_amd64") npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") npm.npm_translate_lock( @@ -143,12 +172,12 @@ use_repo(npm, "npm") rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext") rules_ts_ext.deps( + name = "angular_cli_npm_typescript", # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity' ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", ts_version_from = "//:package.json", - name = "angular_cli_npm_typescript", ) -use_repo(rules_ts_ext, **{"npm_typescript":"angular_cli_npm_typescript"}) +use_repo(rules_ts_ext, **{"npm_typescript": "angular_cli_npm_typescript"}) rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular") rules_angular.setup( @@ -156,7 +185,7 @@ rules_angular.setup( angular_compiler_cli = "//:node_modules/@angular/compiler-cli", typescript = "//:node_modules/typescript", ) -use_repo(rules_angular, **{"rules_angular_configurable_deps":"components_rules_angular_configurable_deps"}) +use_repo(rules_angular, **{"rules_angular_configurable_deps": "components_rules_angular_configurable_deps"}) register_toolchains( "@devinfra//bazel/git-toolchain:git_linux_toolchain", diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 89a24846b104..99d849fa4866 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -515,9 +515,9 @@ "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", - "usagesDigest": "fJ++KXntfJ2Opa+e9MJ7EUkqyvttg+5a7tz5WWKORjY=", + "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "7e399af4e7cbe55613319a6d1096172170242543b64dd37e0d3a4b02e9049b71", + "@@//package.json": "b8717963f6f67cbb10f97aa953eee646c5289d9b20c64d4c0e06f75779ed000b", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -1120,7 +1120,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", - "usagesDigest": "VNegJE3knt/5h/JL13vq4QFPKu3BPExCdxvNCt/D3Yg=", + "usagesDigest": "BWjTwEVnU6V086ModOVKQp27nvlXPOHb9QWSETnrgR8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1551,43 +1551,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1601,43 +1565,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1651,43 +1579,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1701,43 +1593,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1751,43 +1607,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1801,43 +1621,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1851,43 +1635,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1901,43 +1649,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "20.19.0-darwin_arm64": [ - "node-v20.19.0-darwin-arm64.tar.gz", - "node-v20.19.0-darwin-arm64", - "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c" - ], - "20.19.0-darwin_amd64": [ - "node-v20.19.0-darwin-x64.tar.gz", - "node-v20.19.0-darwin-x64", - "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20" - ], - "20.19.0-linux_arm64": [ - "node-v20.19.0-linux-arm64.tar.xz", - "node-v20.19.0-linux-arm64", - "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9" - ], - "20.19.0-linux_ppc64le": [ - "node-v20.19.0-linux-ppc64le.tar.xz", - "node-v20.19.0-linux-ppc64le", - "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65" - ], - "20.19.0-linux_s390x": [ - "node-v20.19.0-linux-s390x.tar.xz", - "node-v20.19.0-linux-s390x", - "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a" - ], - "20.19.0-linux_amd64": [ - "node-v20.19.0-linux-x64.tar.xz", - "node-v20.19.0-linux-x64", - "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5" - ], - "20.19.0-windows_amd64": [ - "node-v20.19.0-win-x64.zip", - "node-v20.19.0-win-x64", - "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1972,43 +1684,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2022,43 +1698,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2072,43 +1712,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2122,43 +1726,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2172,43 +1740,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2222,43 +1754,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2272,43 +1768,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2322,43 +1782,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "22.12.0-darwin_arm64": [ - "node-v22.12.0-darwin-arm64.tar.gz", - "node-v22.12.0-darwin-arm64", - "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13" - ], - "22.12.0-darwin_amd64": [ - "node-v22.12.0-darwin-x64.tar.gz", - "node-v22.12.0-darwin-x64", - "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173" - ], - "22.12.0-linux_arm64": [ - "node-v22.12.0-linux-arm64.tar.xz", - "node-v22.12.0-linux-arm64", - "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68" - ], - "22.12.0-linux_ppc64le": [ - "node-v22.12.0-linux-ppc64le.tar.xz", - "node-v22.12.0-linux-ppc64le", - "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004" - ], - "22.12.0-linux_s390x": [ - "node-v22.12.0-linux-s390x.tar.xz", - "node-v22.12.0-linux-s390x", - "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35" - ], - "22.12.0-linux_amd64": [ - "node-v22.12.0-linux-x64.tar.xz", - "node-v22.12.0-linux-x64", - "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f" - ], - "22.12.0-windows_amd64": [ - "node-v22.12.0-win-x64.zip", - "node-v22.12.0-win-x64", - "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], diff --git a/tools/test/BUILD.bazel b/tools/test/BUILD.bazel index 2e651ae3e654..5d210ff7ac50 100644 --- a/tools/test/BUILD.bazel +++ b/tools/test/BUILD.bazel @@ -1,5 +1,5 @@ -load("@bazel_skylib//rules:diff_test.bzl", "diff_test") load("@aspect_bazel_lib//lib:jq.bzl", "jq") +load("@bazel_skylib//rules:diff_test.bzl", "diff_test") jq( name = "final_package_json", diff --git a/tools/toolchain_info.bzl b/tools/toolchain_info.bzl index 7cbeede0ca67..727a02abcae4 100644 --- a/tools/toolchain_info.bzl +++ b/tools/toolchain_info.bzl @@ -10,9 +10,21 @@ TOOLCHAINS_NAMES = [ # this is the list of toolchains that should be used and are registered with nodejs_register_toolchains in the WORKSPACE file TOOLCHAINS_VERSIONS = [ - "@node20_toolchains//:resolved_toolchain", - "@node22_toolchains//:resolved_toolchain", - "@node24_toolchains//:resolved_toolchain", + select({ + "@bazel_tools//src/conditions:linux_x86_64": "@node20_linux_amd64//:node_toolchain", + "@bazel_tools//src/conditions:darwin": "@node20_darwin_amd64//:node_toolchain", + "@bazel_tools//src/conditions:windows": "@node20_windows_amd64//:node_toolchain", + }), + select({ + "@bazel_tools//src/conditions:linux_x86_64": "@node22_linux_amd64//:node_toolchain", + "@bazel_tools//src/conditions:darwin": "@node22_darwin_amd64//:node_toolchain", + "@bazel_tools//src/conditions:windows": "@node22_windows_amd64//:node_toolchain", + }), + select({ + "@bazel_tools//src/conditions:linux_x86_64": "@node24_linux_amd64//:node_toolchain", + "@bazel_tools//src/conditions:darwin": "@node24_darwin_amd64//:node_toolchain", + "@bazel_tools//src/conditions:windows": "@node24_windows_amd64//:node_toolchain", + }), ] # A default toolchain for use when only one is necessary From 6a83e70e923ccbdd9e3cd49cc1db0e4b93b8af6c Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 19 Aug 2025 09:58:14 +0000 Subject: [PATCH 029/228] ci: improve error message in validation script The error message now will contain the changes. --- scripts/validate.mts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/validate.mts b/scripts/validate.mts index 2eebce377b44..1de28c3e5de2 100644 --- a/scripts/validate.mts +++ b/scripts/validate.mts @@ -13,8 +13,10 @@ import validateUserAnalytics from './validate-user-analytics.mjs'; export default async function (options: { verbose: boolean }) { let error = false; - if (execSync(`git status --porcelain`).toString()) { - console.error('There are local changes.'); + const changes = execSync(`git status --porcelain`).toString(); + if (changes) { + console.error('There are local changes. See below:'); + console.error(changes); if (!options.verbose) { return 101; } From ff719d2445aae839d17ff51a39336542f15f7c3a Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 19 Aug 2025 12:34:16 +0000 Subject: [PATCH 030/228] build: add missing `@angular/create` package.json to `npm_translate_lock` data This file was missing from the data --- MODULE.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/MODULE.bazel b/MODULE.bazel index b3ab84796a25..38d86e49442a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -140,6 +140,7 @@ npm.npm_translate_lock( "//modules/testing/builder:package.json", "//packages/angular/build:package.json", "//packages/angular/cli:package.json", + "//packages/angular/create/package.json", "//packages/angular/pwa:package.json", "//packages/angular/ssr:package.json", "//packages/angular_devkit/architect:package.json", From 533ba460ec71fd59da7f922064fd55a7a73af26a Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Wed, 13 Aug 2025 12:22:25 +0200 Subject: [PATCH 031/228] refactor(@angular/cli): improve discoverability of mcp server options (cherry picked from commit 2a94e21bec28fca114db97f701d050e9fb7c3217) --- packages/angular/cli/src/commands/mcp/cli.ts | 6 +++++- packages/angular/cli/src/commands/mcp/mcp-server.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/cli.ts b/packages/angular/cli/src/commands/mcp/cli.ts index 7e3618eeb17e..9f8cfef91997 100644 --- a/packages/angular/cli/src/commands/mcp/cli.ts +++ b/packages/angular/cli/src/commands/mcp/cli.ts @@ -10,7 +10,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' import { Argv } from 'yargs'; import { CommandModule, CommandModuleImplementation } from '../../command-builder/command-module'; import { isTTY } from '../../utilities/tty'; -import { createMcpServer } from './mcp-server'; +import { EXPERIMENTAL_TOOLS, createMcpServer } from './mcp-server'; const INTERACTIVE_MESSAGE = ` To start using the Angular CLI MCP Server, add this configuration to your host: @@ -25,6 +25,8 @@ To start using the Angular CLI MCP Server, add this configuration to your host: } Exact configuration may differ depending on the host. + +For more information and documentation, visit: https://angular.dev/ai/mcp `; export default class McpCommandModule extends CommandModule implements CommandModuleImplementation { @@ -49,6 +51,8 @@ export default class McpCommandModule extends CommandModule implements CommandMo alias: 'E', array: true, describe: 'Enable an experimental tool.', + choices: EXPERIMENTAL_TOOLS.map(({ name }) => name), + hidden: true, }); } diff --git a/packages/angular/cli/src/commands/mcp/mcp-server.ts b/packages/angular/cli/src/commands/mcp/mcp-server.ts index ceedc6374ad6..cf852de0482d 100644 --- a/packages/angular/cli/src/commands/mcp/mcp-server.ts +++ b/packages/angular/cli/src/commands/mcp/mcp-server.ts @@ -28,7 +28,7 @@ const STABLE_TOOLS = [BEST_PRACTICES_TOOL, DOC_SEARCH_TOOL, LIST_PROJECTS_TOOL] * The set of tools that are available but not enabled by default. * These tools are considered experimental and may have limitations. */ -const EXPERIMENTAL_TOOLS = [FIND_EXAMPLE_TOOL, MODERNIZE_TOOL] as const; +export const EXPERIMENTAL_TOOLS = [FIND_EXAMPLE_TOOL, MODERNIZE_TOOL] as const; export async function createMcpServer( options: { From fe073a7dc3101c29c9d10479fc325f15b8dd7aed Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 19 Aug 2025 10:43:56 -0400 Subject: [PATCH 032/228] refactor(@angular/cli): use main element extraction for MCP doc search The angular.dev documenation now uses `main` elements within each page to indicate the actual content. To reduce the amount of HTML passed back in the MCP `search_documentation` tool, only the `main` element is now used instead of the entire `body` element. (cherry picked from commit f88fd74945e0f6fe890cc0fbcbcb6a4ada80689e) --- .../cli/src/commands/mcp/tools/doc-search.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts index 53ca94928d7d..790f6de8ca07 100644 --- a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts +++ b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts @@ -101,7 +101,7 @@ function createDocSearchHandler() { const response = await fetch(url); if (response.ok) { const html = await response.text(); - const mainContent = extractBodyContent(html); + const mainContent = extractMainContent(html); if (mainContent) { topText += `\n\n--- DOCUMENTATION CONTENT ---\n${mainContent}`; } @@ -129,24 +129,23 @@ function createDocSearchHandler() { } /** - * Extracts the content of the `` element from an HTML string. + * Extracts the content of the `
` element from an HTML string. * * @param html The HTML content of a page. - * @returns The content of the `` element, or `undefined` if not found. + * @returns The content of the `
` element, or `undefined` if not found. */ -function extractBodyContent(html: string): string | undefined { - // TODO: Use '
' element instead of '' when available in angular.dev HTML. - const mainTagStart = html.indexOf(''); + const mainTagEnd = html.lastIndexOf('
'); if (mainTagEnd <= mainTagStart) { return undefined; } - // Add 7 to include '' + // Add 7 to include '
' return html.substring(mainTagStart, mainTagEnd + 7); } From a30f66272b6b490e27ce443e00765782cea4a99b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 20 Aug 2025 13:21:11 +0000 Subject: [PATCH 033/228] Revert "refactor(@angular/ssr): add workaround for router `lastSuccessfulNavigation` breaking changing" This reverts commit 2fde130b3736d690a2bb9a56a87a549f357c7e3b. --- packages/angular/ssr/src/utils/ng.ts | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index 62f504d4341b..b92aa51d1d84 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -100,15 +100,7 @@ export async function renderAngular( const envInjector = applicationRef.injector; const routerIsProvided = !!envInjector.get(ActivatedRoute, null); const router = envInjector.get(Router); - - // TODO(alanagius): Remove the below check when version 21.0.0-next.0 is on NPM - // Workaround for breaking change that landed on angular/angular main too early - // https://github.com/angular/angular/pull/63057 - const lastSuccessfulNavigation = - typeof router.lastSuccessfulNavigation === 'function' - ? // eslint-disable-next-line @typescript-eslint/no-explicit-any - (router as any).lastSuccessfulNavigation() - : router.lastSuccessfulNavigation; + const lastSuccessfulNavigation = router.lastSuccessfulNavigation; if (!routerIsProvided) { hasNavigationError = false; From 765206d7e1ce153b2288db5196dbc9d977708286 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 20 Aug 2025 13:26:37 +0000 Subject: [PATCH 034/228] build: update `@angular/ng-dev` to 4fead3666abc9c5dfff101a8bfdc7a2d02f78982 This contains a fix for updating the bazel lock file during the release, which otherwise would cause the build and CI to break. See: https://github.com/angular/dev-infra/pull/2975 --- MODULE.bazel.lock | 2 +- package.json | 2 +- pnpm-lock.yaml | 64 ++++++----------------------------------------- 3 files changed, 10 insertions(+), 58 deletions(-) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 99d849fa4866..9ea8eec512d9 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -517,7 +517,7 @@ "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "b8717963f6f67cbb10f97aa953eee646c5289d9b20c64d4c0e06f75779ed000b", + "@@//package.json": "b8b5c8f28f439be96679ecc653c4c798d0cd3d0e5a5ccbfa868d119f9d0ca91d", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index a1329cecc36b..476866a63b88 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.0-rc.0", "@angular/localize": "20.2.0-rc.0", "@angular/material": "20.2.0-next.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e16e229975bd41d66ec49905d5896b8f61068a19", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982", "@angular/platform-browser": "20.2.0-rc.0", "@angular/platform-server": "20.2.0-rc.0", "@angular/router": "20.2.0-rc.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e810cdeb13e7..39cbc969e234 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0-next.3 version: 20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e16e229975bd41d66ec49905d5896b8f61068a19 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.0-rc.0 version: 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.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/e16e229975bd41d66ec49905d5896b8f61068a19': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19} - version: 0.0.0-7f2c99469dcf64fd466abf6cb53bede791d7599d + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982} + version: 0.0.0-fada401aa5023cb046753a15bfda9ec520eb4ed6 hasBin: true '@angular/platform-browser@20.2.0-rc.0': @@ -2190,15 +2190,6 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/checkbox@4.2.0': - resolution: {integrity: sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/checkbox@4.2.1': resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==} engines: {node: '>=18'} @@ -2226,15 +2217,6 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.16': - resolution: {integrity: sha512-iSzLjT4C6YKp2DU0fr8T7a97FnRRxMO6CushJnW5ktxLNM2iNeuyUuUA5255eOLPORoGYCrVnuDOEBdGkHGkpw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/editor@4.2.17': resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==} engines: {node: '>=18'} @@ -2253,12 +2235,6 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.0': - resolution: {integrity: sha512-5v3YXc5ZMfL6OJqXPrX9csb4l7NlQA2doO1yynUjpUChT9hg4JcuBVP0RbsEJ/3SL/sxWEyFjT2W69ZhtoBWqg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - '@inquirer/external-editor@1.0.1': resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} engines: {node: '>=18'} @@ -9184,7 +9160,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -10655,16 +10631,6 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.0(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - '@inquirer/checkbox@4.2.1(@types/node@24.2.0)': dependencies: '@inquirer/core': 10.1.15(@types/node@24.2.0) @@ -10695,14 +10661,6 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 - '@inquirer/editor@4.2.16(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/external-editor': 1.0.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - optionalDependencies: - '@types/node': 24.2.0 - '@inquirer/editor@4.2.17(@types/node@24.2.0)': dependencies: '@inquirer/core': 10.1.15(@types/node@24.2.0) @@ -10719,12 +10677,6 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 - '@inquirer/external-editor@1.0.0(@types/node@24.2.0)': - dependencies: - '@types/node': 24.2.0 - chardet: 2.1.0 - iconv-lite: 0.6.3 - '@inquirer/external-editor@1.0.1(@types/node@24.2.0)': dependencies: chardet: 2.1.0 @@ -10758,9 +10710,9 @@ snapshots: '@inquirer/prompts@7.8.0(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.0(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.16(@types/node@24.2.0) + '@inquirer/editor': 4.2.17(@types/node@24.2.0) '@inquirer/expand': 4.0.17(@types/node@24.2.0) '@inquirer/input': 4.2.1(@types/node@24.2.0) '@inquirer/number': 3.0.17(@types/node@24.2.0) From 344f8b239d67f8a5505fd56dbfed8dd807797fa4 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 20 Aug 2025 13:13:43 +0000 Subject: [PATCH 035/228] build: update Angular versions to 20.2 stable version. `20.2` is no longer is pre-release. --- constants.bzl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/constants.bzl b/constants.bzl index 76b8d7e1dccb..40841eeaab75 100644 --- a/constants.bzl +++ b/constants.bzl @@ -3,10 +3,10 @@ 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-next.0" -ANGULAR_FW_VERSION = "^20.2.0-next.0" -ANGULAR_FW_PEER_DEP = "^20.0.0 || ^20.2.0-next.0" -NG_PACKAGR_PEER_DEP = "^20.0.0 || ^20.2.0-next.0" +NG_PACKAGR_VERSION = "^20.2.0" +ANGULAR_FW_VERSION = "^20.2.0" +ANGULAR_FW_PEER_DEP = "^20.0.0" +NG_PACKAGR_PEER_DEP = "^20.0.0" # Baseline widely-available date in `YYYY-MM-DD` format which defines Angular's # browser support. This date serves as the source of truth for the Angular CLI's From 6d139a589f81900faae444ee1148323a87ba343c Mon Sep 17 00:00:00 2001 From: Jan Martin Date: Wed, 20 Aug 2025 07:03:38 -0700 Subject: [PATCH 036/228] release: cut the v20.2.0 release --- CHANGELOG.md | 116 +++++++++++----------------------------------- MODULE.bazel.lock | 2 +- package.json | 2 +- 3 files changed, 29 insertions(+), 91 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2b5310bd2ef..0797d1ce29d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,19 @@ - + -# 20.2.0-rc.1 (2025-08-15) +# 20.2.0 (2025-08-20) ### @angular/cli -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------ | -| [8ba6b0bcc](https://github.com/angular/angular-cli/commit/8ba6b0bcc8c8087875d14a0aefc6b7b52f39ce2a) | fix | use correct path for MCP get_best_practices tool | - -### @schematics/angular - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------- | -| [ffe6fb916](https://github.com/angular/angular-cli/commit/ffe6fb916d496da1c6c20942f6e6b05a679b0f7d) | fix | allow AI config prompt to be skipped without selecting a value | -| [6a79f9a75](https://github.com/angular/angular-cli/commit/6a79f9a75cdcbb0761c4044066748f4eb788a57f) | fix | zoneless is now stable | - - - - - -# 20.2.0-rc.0 (2025-08-13) - -### @angular/cli - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------- | -| [b4de9a1bf](https://github.com/angular/angular-cli/commit/b4de9a1bf50a35404fb79eb3f120faafd0ce825a) | feat | add --experimental-tool option to mcp command | -| [755ba70fd](https://github.com/angular/angular-cli/commit/755ba70fd7ef38793d15797ba402020c375c3295) | feat | add --local-only option to mcp command | -| [59d7ef343](https://github.com/angular/angular-cli/commit/59d7ef343b6f1feea37a019935578c560d3d5e41) | feat | add --read-only option to mcp command | -| [4e92eb6f1](https://github.com/angular/angular-cli/commit/4e92eb6f17cb30259bc8e8d1979bbd9989bc5ad0) | feat | add modernize tool to the MCP server | +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------------------- | +| [b4de9a1bf](https://github.com/angular/angular-cli/commit/b4de9a1bf50a35404fb79eb3f120faafd0ce825a) | feat | add --experimental-tool option to mcp command | +| [755ba70fd](https://github.com/angular/angular-cli/commit/755ba70fd7ef38793d15797ba402020c375c3295) | feat | add --local-only option to mcp command | +| [59d7ef343](https://github.com/angular/angular-cli/commit/59d7ef343b6f1feea37a019935578c560d3d5e41) | feat | add --read-only option to mcp command | +| [4e92eb6f1](https://github.com/angular/angular-cli/commit/4e92eb6f17cb30259bc8e8d1979bbd9989bc5ad0) | feat | add modernize tool to the MCP server | +| [a3b25f675](https://github.com/angular/angular-cli/commit/a3b25f675283fdd8cc5689e3ec88f27aa1386390) | fix | add choices to command line parser when type is array and has an enum | +| [e19eee614](https://github.com/angular/angular-cli/commit/e19eee61404a9ca6268ebbc69f671a422d81df9b) | fix | address Node.js deprecation DEP0190 | +| [4ee6f327a](https://github.com/angular/angular-cli/commit/4ee6f327a206f8ff2ad5eeab43193df56b92b5e0) | fix | apply default to array types | +| [8ba6b0bcc](https://github.com/angular/angular-cli/commit/8ba6b0bcc8c8087875d14a0aefc6b7b52f39ce2a) | fix | use correct path for MCP get_best_practices tool | ### @schematics/angular @@ -36,9 +21,22 @@ | --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------- | | [2e3cfd598](https://github.com/angular/angular-cli/commit/2e3cfd598c9366d0036a52cd18024317b33e6fca) | feat | add migration to remove default Karma configurations | | [d80dae276](https://github.com/angular/angular-cli/commit/d80dae276e9554c13e0c37640d0db8acafc9d48b) | feat | add schematics to generate ai context files. | -| [6a78ef0ce](https://github.com/angular/angular-cli/commit/6a78ef0cec4875be76d9241499db67ddac6e14df) | fix | add extra prettier config | -| [e46d9c54f](https://github.com/angular/angular-cli/commit/e46d9c54f07e32dc05e29a3533ce1bd063ff9f61) | fix | correct configure the `typeSeparator` in the library schematic | +| [ffe6fb916](https://github.com/angular/angular-cli/commit/ffe6fb916d496da1c6c20942f6e6b05a679b0f7d) | fix | allow AI config prompt to be skipped without selecting a value | +| [ae2802b7d](https://github.com/angular/angular-cli/commit/ae2802b7db358c5a3f0590feea212a768a710353) | fix | improve AI config prompt wording | | [b017f84fd](https://github.com/angular/angular-cli/commit/b017f84fdaf36bc0fcad2241846665c73b52b6d8) | fix | improve coverage directory handling for Karma configuration comparisons | +| [6a79f9a75](https://github.com/angular/angular-cli/commit/6a79f9a75cdcbb0761c4044066748f4eb788a57f) | fix | zoneless is now stable | + +### @angular-devkit/schematics + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------- | +| [c43504d8d](https://github.com/angular/angular-cli/commit/c43504d8d96a4436ce71c23d957aec2d080106b8) | fix | address Node.js deprecation DEP0190 | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------- | +| [fb06bb505](https://github.com/angular/angular-cli/commit/fb06bb5050e92eb4d0f95d7774552d0902163f6a) | feat | add headless mode for vitest browser mode | @@ -55,18 +53,6 @@ - - -# 20.2.0-next.3 (2025-08-08) - -### @angular/cli - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------- | -| [51d56f770](https://github.com/angular/angular-cli/commit/51d56f770714a015aa7621d53c4a1634e8a01cc8) | fix | cache MCP best practices content and add tool annotations | - - - # 20.1.5 (2025-08-06) @@ -79,24 +65,6 @@ - - -# 20.2.0-next.2 (2025-07-30) - -### @angular/cli - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------ | -| [193b39416](https://github.com/angular/angular-cli/commit/193b39416731fa439fea7da8c06d5d287df99bc1) | fix | skip workspace-specific tools when outside a workspace | - -### @angular/build - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------- | -| [7a183730c](https://github.com/angular/angular-cli/commit/7a183730c77689fb9e63625f5ef20aef1cefb88b) | fix | skip vite transformation of CSS-like assets | - - - # 20.1.4 (2025-07-30) @@ -127,30 +95,6 @@ - - -# 20.2.0-next.1 (2025-07-23) - -### @angular/cli - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------- | -| [fefa7a46f](https://github.com/angular/angular-cli/commit/fefa7a46f5733fd77852a61fddc3120b1bb4b202) | fix | `define` option is being included multiple times in the JSON help | - -### @angular-devkit/core - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------- | -| [7595e1f88](https://github.com/angular/angular-cli/commit/7595e1f8887bafd344ec939e647e3fca8bbd98be) | fix | use crypto.randomUUID instead of Date.now for unique string in tmp file names | - -### @angular/build - -| Commit | Type | Description | -| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------- | -| [fb06bb505](https://github.com/angular/angular-cli/commit/fb06bb5050e92eb4d0f95d7774552d0902163f6a) | feat | add headless mode for vitest browser mode | - - - # 20.1.2 (2025-07-23) @@ -169,12 +113,6 @@ - - -# 20.2.0-next.0 (2025-07-16) - - - # 20.1.1 (2025-07-16) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 9ea8eec512d9..3de8fc892ff1 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -517,7 +517,7 @@ "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "b8b5c8f28f439be96679ecc653c4c798d0cd3d0e5a5ccbfa868d119f9d0ca91d", + "@@//package.json": "e30c5be9ae9025cfc8468441b2b0701177ca633c16284043d376fc16b195315c", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 476866a63b88..5d01146dc941 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.0-rc.1", + "version": "20.2.0", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From aaf0abfb1ab113fc5037f8ee1cc788d43fb4203a Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 20 Aug 2025 06:43:15 +0000 Subject: [PATCH 037/228] build: enforce frozen lockfile mode This commit adds `lockfile_mode=error` to the `.bazelrc` file. This change ensures that any future builds will fail if the lock file is not up-to-date with the `BUILD.bazel` file, preventing inconsistencies and encouraging developers to commit updated lock files. (cherry picked from commit a8b049af5d5b7eb8b01caeed91b18b131029d612) --- .bazelrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.bazelrc b/.bazelrc index 4f79c86cf3b4..816134dca1ef 100644 --- a/.bazelrc +++ b/.bazelrc @@ -16,6 +16,9 @@ test:debug --test_arg=--node_options=--inspect-brk --test_output=streamed --test # The below is useful to while using `fit` and `fdescribe` to avoid sharing and re-runs of failed flaky tests. test:no-sharding --flaky_test_attempts=1 --test_sharding_strategy=disabled +# Frozen lockfile +common --lockfile_mode=error + ############################### # Filesystem interactions # ############################### From 61e057afdb5d690b1f1aadf17e16b4d9095fd6a7 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 20 Aug 2025 15:31:50 +0000 Subject: [PATCH 038/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 42 +-- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 28 +- packages/angular/build/package.json | 2 +- packages/angular/ssr/package.json | 12 +- .../angular_devkit/build_angular/package.json | 2 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 350 ++++++++---------- 15 files changed, 234 insertions(+), 276 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index e92931a1cf80..10f389d2f7fe 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@16e272eaa88efe5891e7e6c8e13b956ae7e5a73e + uses: angular/dev-infra/github-actions/setup-wsl@5dcd68302563500c0931b35b8d42e03ad5157db1 with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f55b9c8510c9..f0990e775216 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/branch-manager@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 882250aa1c95..dbfb3a0c35c8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 7d8f337c4225..a5272ec58428 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/pull-request-labeling@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/post-approval-changes@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 032707e874f5..cde9ef5cd907 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + - uses: angular/dev-infra/github-actions/feature-request@5dcd68302563500c0931b35b8d42e03ad5157db1 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ea9aa9331c1d..4e8d2393e00d 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 33abf4ad87f0..9f95f87c9ac8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/linting/licenses@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -157,13 +157,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -180,12 +180,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528 + uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 38d86e49442a..06e64b582497 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "7a11f99c467ca5ae4411c27beeec4300e32b616a", + commit = "5dcd68302563500c0931b35b8d42e03ad5157db1", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3de8fc892ff1..2789593768c8 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -517,7 +517,7 @@ "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "e30c5be9ae9025cfc8468441b2b0701177ca633c16284043d376fc16b195315c", + "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 5d01146dc941..dcb9e53a59d4 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.0-rc.0", - "@angular/cdk": "20.2.0-next.3", - "@angular/common": "20.2.0-rc.0", - "@angular/compiler": "20.2.0-rc.0", - "@angular/compiler-cli": "20.2.0-rc.0", - "@angular/core": "20.2.0-rc.0", - "@angular/forms": "20.2.0-rc.0", - "@angular/localize": "20.2.0-rc.0", - "@angular/material": "20.2.0-next.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982", - "@angular/platform-browser": "20.2.0-rc.0", - "@angular/platform-server": "20.2.0-rc.0", - "@angular/router": "20.2.0-rc.0", - "@angular/service-worker": "20.2.0-rc.0", + "@angular/animations": "20.2.0", + "@angular/cdk": "20.2.0", + "@angular/common": "20.2.0", + "@angular/compiler": "20.2.0", + "@angular/compiler-cli": "20.2.0", + "@angular/core": "20.2.0", + "@angular/forms": "20.2.0", + "@angular/localize": "20.2.0", + "@angular/material": "20.2.0", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3", + "@angular/platform-browser": "20.2.0", + "@angular/platform-server": "20.2.0", + "@angular/router": "20.2.0", + "@angular/service-worker": "20.2.0", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index 692f51f21575..4fffaacd8424 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -53,7 +53,7 @@ "@angular-devkit/core": "workspace:*", "jsdom": "26.1.0", "less": "4.4.0", - "ng-packagr": "20.2.0-next.1", + "ng-packagr": "20.2.0", "postcss": "8.5.6", "rxjs": "7.8.2", "vitest": "3.2.4" diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 8cde00db2483..87d4700da7c0 100644 --- a/packages/angular/ssr/package.json +++ b/packages/angular/ssr/package.json @@ -29,12 +29,12 @@ }, "devDependencies": { "@angular-devkit/schematics": "workspace:*", - "@angular/common": "20.2.0-rc.0", - "@angular/compiler": "20.2.0-rc.0", - "@angular/core": "20.2.0-rc.0", - "@angular/platform-browser": "20.2.0-rc.0", - "@angular/platform-server": "20.2.0-rc.0", - "@angular/router": "20.2.0-rc.0", + "@angular/common": "20.2.0", + "@angular/compiler": "20.2.0", + "@angular/core": "20.2.0", + "@angular/platform-browser": "20.2.0", + "@angular/platform-server": "20.2.0", + "@angular/router": "20.2.0", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 9d1df7de64be..82d869b5360c 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -68,7 +68,7 @@ "@angular/ssr": "workspace:*", "@web/test-runner": "0.20.2", "browser-sync": "3.0.4", - "ng-packagr": "20.2.0-next.1", + "ng-packagr": "20.2.0", "undici": "7.13.0" }, "peerDependencies": { diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 8ad490c870c5..319709ad8646 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -27,8 +27,8 @@ }, "devDependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", - "@angular/compiler": "20.2.0-rc.0", - "@angular/compiler-cli": "20.2.0-rc.0", + "@angular/compiler": "20.2.0", + "@angular/compiler-cli": "20.2.0", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39cbc969e234..0885f2f68745 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.0-next.3 - version: 20.2.0-next.3(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/compiler-cli': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) '@angular/core': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(@angular/compiler@20.2.0-rc.0) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0) '@angular/material': - specifier: 20.2.0-next.3 - version: 20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d) + specifier: 20.2.0 + version: 20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#4fead3666abc9c5dfff101a8bfdc7a2d02f78982 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.0 + version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0-rc.0)(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -438,8 +438,8 @@ importers: specifier: 4.4.0 version: 4.4.0 ng-packagr: - specifier: 20.2.0-next.1 - version: 20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/core': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.0 + version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0-rc.0)(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.0 + version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -760,8 +760,8 @@ importers: specifier: 3.0.4 version: 3.0.4(bufferutil@4.0.9) ng-packagr: - specifier: 20.2.0-next.1 - version: 20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0 + specifier: 20.2.0 + version: 20.2.0 '@angular/compiler-cli': - specifier: 20.2.0-rc.0 - version: 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + specifier: 20.2.0 + version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,47 +975,47 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.0-rc.0': - resolution: {integrity: sha512-f49VReWNKRbFznUAniGuVfSD/lmuABiL2KYaV7NVguGR1UWOagArr8WkG9G5UMpR+/LXKPCYZZAPjdOXu0bQOg==} + '@angular/animations@20.2.0': + resolution: {integrity: sha512-byenV4zWPCP8COriHO+1FGCG/3+xUqzX4VSWashWsGHuXv/AKboh88qVL4xGvDGESEdqN/tpiU9KBonue+Axvg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 - '@angular/cdk@20.2.0-next.3': - resolution: {integrity: sha512-hNKVLAIlDh5H3QL0gNOJ6W5xxS9v5EDzyWI3eOe7ZnrUGmcEr9ViiDGrTEmu6aEMycXI1PUJ+jfoGLSaAmR+fQ==} + '@angular/cdk@20.2.0': + resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} peerDependencies: - '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 + '@angular/common': ^20.0.0 || ^21.0.0 + '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.0-rc.0': - resolution: {integrity: sha512-kWd/NY/18pXX8wXKlmgPi6ZKiQxHxLEAcescZypbsJNhV4u7nKeeEkr0SZD/uj7Bfg1rcDnnD2vk1BMTBSnXcw==} + '@angular/common@20.2.0': + resolution: {integrity: sha512-mh0tF+QjCx1udoeBP4adOXVHVZ1E8okzT/yybYamD5abLiaMSSh4P50JTBuPmJgqqWo9MXDLOLTnKqBSv/FbZw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.0-rc.0 + '@angular/core': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.0-rc.0': - resolution: {integrity: sha512-Hgm9yAV3jSwfl1A6gHgIWwkfPXDzpI9r6STm3ioxvjKuINbdFXhzWrQGsL85/kuaUJKWBtrHcnlbUi3igqy9Ag==} + '@angular/compiler-cli@20.2.0': + resolution: {integrity: sha512-mZ7R7tMm1KMBZSCOKSeE9gb37u2ZGc5YlQ8bIgKo+Uik2uvXVDDG1NC/Qe/medYCriSGmI6HqfFce50Nx8/Uxg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.0-rc.0': - resolution: {integrity: sha512-YqgnfOoHwSqy6LN8E4+yIutNGt4RaAwqfxBM8wywb80I5F8GswFuszcZgtAMJqcGvUdKsr9YU0GYMu5HiYVMaw==} + '@angular/compiler@20.2.0': + resolution: {integrity: sha512-1kI7VFvuTODX/1TusUH/L1N+SDcDj9m/j/0Ewq+IKkizS4eOjgx+7UGBuTjw9yWZ7QQGEPdoQG9qsM2dhs9dUQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.0-rc.0': - resolution: {integrity: sha512-6YGTSHtwlagaPAQPGSBGxw5ZcT+oh+ShQJPq08UGXQWZ7Owfioxe1y36MRk0aRolmVOdUhXA/r8EVEmEwyqL+Q==} + '@angular/core@20.2.0': + resolution: {integrity: sha512-4qXWdKYRFNlc1FfgNfYF5189rZ8BnvU5DN2iH2/djRdRJikpm3+JeEuFW7GFjF9dyjOE97x0S3dbVHs0c5mcYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,74 +1024,74 @@ packages: zone.js: optional: true - '@angular/forms@20.2.0-rc.0': - resolution: {integrity: sha512-pMLN+IOyjgmdDVTHoPCL+q0JgMrGLSl1YvZXul8n4p2xpA09c2aqj7eStTVIwxCT1GCsd7RSM7bsKoYlYuOTdQ==} + '@angular/forms@20.2.0': + resolution: {integrity: sha512-vG5FIMCGNDMbaWPSazd5Jv14cW+aVUg8G5ikWRSGU1aou7uzmzT2n+zpg4PDSxOFeNXuSZV3n5zJ5prM1NaYJg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.0-rc.0': - resolution: {integrity: sha512-cDpZogQbtbPBVaB9foYcgyOEWB56qDbDaiS4bFGJIkL67QUcN4C6py2YefgRe8424dkeviqrfRUY5PlpQbBQMw==} + '@angular/localize@20.2.0': + resolution: {integrity: sha512-XKYinzSPk72Eae60HpP5yWPLf6Yo/y5esd20/gRRpZ0rQMbRFPtWoHnAk+5jOCeQaBaxx25MX312TVLxjS5+0Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0-rc.0 - '@angular/compiler-cli': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 + '@angular/compiler-cli': 20.2.0 - '@angular/material@20.2.0-next.3': - resolution: {integrity: sha512-QvWIHqU1MkfumtyvR0r84O+EI9dL1w7tQlcwpfZyRy0b87P7T5BL+IlUVE3+gTYmCv1tYtVSzzb88MBw0BfNsQ==} + '@angular/material@20.2.0': + resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} peerDependencies: - '@angular/cdk': 20.2.0-next.3 - '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/forms': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/platform-browser': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 + '@angular/cdk': 20.2.0 + '@angular/common': ^20.0.0 || ^21.0.0 + '@angular/core': ^20.0.0 || ^21.0.0 + '@angular/forms': ^20.0.0 || ^21.0.0 + '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982} - version: 0.0.0-fada401aa5023cb046753a15bfda9ec520eb4ed6 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3} + version: 0.0.0-5dcd68302563500c0931b35b8d42e03ad5157db1 hasBin: true - '@angular/platform-browser@20.2.0-rc.0': - resolution: {integrity: sha512-rOuMeSi76xS/6T9rlAyWUDELzUDRg3BTC7isx6tl6zI8RIuM6GMX7nDy1a+12U3SlTsqNhxPaALLkmM6Tm+GyQ==} + '@angular/platform-browser@20.2.0': + resolution: {integrity: sha512-0CyDeXLQixXAWRBq4vfwALo0a0/igtUH1bFkHBUy4u6Nku7S8K7GG/HDN0CGlpep9Xz9o0ghF1zfZHfmEQxlmg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.0-rc.0 - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 + '@angular/animations': 20.2.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.0-rc.0': - resolution: {integrity: sha512-AMSzSaRcb26H8aDrzzP5+TJRx3IlDJs+C93W4wWJnTd/jmMLkpQFP3S+ZpN6y/pmZXL25Ct5M8ywcb0Ua8aokQ==} + '@angular/platform-server@20.2.0': + resolution: {integrity: sha512-OzVqm3NCGScL4Jd4M3XVTMkCIijYd0NuuVo6UH+UThaFFKde7ISePGaVh0GlXw+rGl9m/gJL3WMIZh3xfqHAlA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/compiler': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/compiler': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.0-rc.0': - resolution: {integrity: sha512-cGoY/Fsy0gmSbBC1AUr/QA3d2883J8Pax8B6ApExSmCAHtXA/hkkD/r48jjlA9TD4hQooPXxA0BrogYeIhnD7A==} + '@angular/router@20.2.0': + resolution: {integrity: sha512-pUrRVdgHkkd1b3GqHpuq/4YJTuNYGXWykg9t5MUjnt94H6gynpyEmYEZB+RNqwTTZLHgRRv9Y7JMRbwIdupNpA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0 - '@angular/platform-browser': 20.2.0-rc.0 + '@angular/common': 20.2.0 + '@angular/core': 20.2.0 + '@angular/platform-browser': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.0-rc.0': - resolution: {integrity: sha512-T5hkP9VYA3DPg89Qg3S0U+EfH5+WxdGzZ9vJueN410CxBRjDZ5rOSYvFxDTiwdsMpNQs+IsjALSeLNF3SDjQ+w==} + '@angular/service-worker@20.2.0': + resolution: {integrity: sha512-ERJQ5KLAXqG0nyD09lZqyVaQv9Es08+5DZZRZf/OQC3GapGV71JcdcEC3yOr5agZLSNFkuiCzufBad5QIvZzPQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.0-rc.0 + '@angular/core': 20.2.0 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -1105,10 +1105,6 @@ packages: resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.3': resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} engines: {node: '>=6.9.0'} @@ -1216,10 +1212,6 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} engines: {node: '>=6.9.0'} @@ -6760,12 +6752,12 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - ng-packagr@20.2.0-next.1: - resolution: {integrity: sha512-cqGaUssFYkZf+BHQMozRlfZePb/XCe9QFyyqZkGHRCxbh4rFfkL3m0t3wAOGQtgm4BY784ylXpSI26hXi9zqOQ==} + ng-packagr@20.2.0: + resolution: {integrity: sha512-U8kv9O5hD9ojKlSke44A2NIH5sH0EmQXtQTtMLLrpn7y4LUeCQgTi5t8KsDXoMyCmBKMhDJzioa3R22pOy5vFg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler-cli': ^20.0.0 || ^20.1.0-next.0 || ^20.2.0-next.0 + '@angular/compiler-cli': ^20.0.0 || ^20.2.0-rc tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 typescript: 5.9.2 @@ -9083,30 +9075,30 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0-next.3(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.0-rc.0 - '@babel/core': 7.28.0 + '@angular/compiler': 20.2.0 + '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 convert-source-map: 1.9.0 @@ -9119,48 +9111,48 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.0-rc.0': + '@angular/compiler@20.2.0': dependencies: tslib: 2.8.1 - '@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.0-rc.0 + '@angular/compiler': 20.2.0 zone.js: 0.15.1 - '@angular/forms@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.2.0-rc.0(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(@angular/compiler@20.2.0-rc.0)': + '@angular/localize@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0)': dependencies: - '@angular/compiler': 20.2.0-rc.0 - '@angular/compiler-cli': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) - '@babel/core': 7.28.0 + '@angular/compiler': 20.2.0 + '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 yargs: 18.0.0 transitivePeerDependencies: - supports-color - '@angular/material@20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d)': + '@angular/material@20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec)': dependencies: - '@angular/cdk': 20.2.0-next.3(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4fead3666abc9c5dfff101a8bfdc7a2d02f78982(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -9222,35 +9214,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0-rc.0)(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.0-rc.0 - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.0 + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -9270,26 +9262,6 @@ snapshots: '@babel/compat-data@7.28.0': {} - '@babel/core@7.28.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@10.1.0) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.3': dependencies: '@ampproject/remapping': 2.3.0 @@ -9390,15 +9362,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 @@ -9466,11 +9429,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - '@babel/helpers@7.28.3': dependencies: '@babel/template': 7.27.2 @@ -15883,10 +15841,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0-next.1(@angular/compiler-cli@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.46.2 ajv: 8.17.1 From f06796769a0be20eaa51e1ab2d2b6468006b2d1b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 20 Aug 2025 15:37:52 +0000 Subject: [PATCH 039/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 6 ++--- MODULE.bazel.lock | 65 ++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 06e64b582497..45463d56cc02 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -7,7 +7,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.2.0") bazel_dep(name = "rules_nodejs", version = "6.5.0") bazel_dep(name = "aspect_rules_js", version = "2.4.2") -bazel_dep(name = "aspect_rules_ts", version = "3.6.3") +bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") # Alow for usage of rules_pkg@0.8.1 even though other deps want a later verison. @@ -25,14 +25,14 @@ single_version_override( version = "1.5.3", ) -bazel_dep(name = "aspect_bazel_lib", version = "2.20.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.21.0") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "rules_angular") git_override( module_name = "rules_angular", - commit = "a957283cdef0ade1fc6d1d7404f14577cebd3642", + commit = "17eac47ea99057f7473a7d93292e76327c894ed9", remote = "https://github.com/devversion/rules_angular.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 2789593768c8..dbe222baad7a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,8 +15,8 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/MODULE.bazel": "c5565bac49e1973227225b441fad1c938d498d83df62dc5da95b2fab0f0626a2", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/source.json": "3eaada79dd3c65b6c57d5fc33c57ffd2896c4ebd78c4c9001a790a70f7f50e61", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/MODULE.bazel": "2fbd1f58ccbbe28749a248bdadea068a6db27eda8be45f8d60668f48e4025437", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/source.json": "9ce346023624f8d3b58d31d3ef1bf773f85495187386f6de63fd8aaef744c63e", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", @@ -28,9 +28,11 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/source.json": "854a600536a6fa4efae974a19271ae3d86d39705094cc41331724583398bb0b6", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", - "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/source.json": "641e58c62e5090d52a0d3538451893acdb2d79a36e8b3d1d30a013c580bc2058", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", + "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/MODULE.bazel": "20f53b145f40957a51077ae90b37b7ce83582a1daf9350349f0f86179e19dd0d", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/source.json": "e0a34c61e5315d41e9b90e4771a60e0924f80a2810ec15e7d489e6249c0dea56", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/source.json": "4d98137d5f74f01e00c6efa8bf591c02718e6c5f31f0bcc73983ea514dd02a12", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", @@ -109,11 +111,14 @@ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", @@ -122,8 +127,11 @@ "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", @@ -153,8 +161,10 @@ "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", @@ -202,7 +212,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "73CpZPjP7vEyFM9OekAg3uSwvTB2xjp4/poCF2+3eVk=", + "bzlTransitiveDigest": "sSVcgtXWHd7osgq50rEZWY2HUmSuNU72/SbhIh5PKsw=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -377,7 +387,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "8j0b3nFWNDqbr6G01xANzp5AVkacJrXmbMs0r/gLu5Y=", + "bzlTransitiveDigest": "aU6dw0RbQaePWr28SJnbI5vd1VoLqJ8DBaheoenhjJ4=", "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -514,7 +524,7 @@ }, "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=", + "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", @@ -528,15 +538,9 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "bzlmod": true, "version": "", "version_from": "@@//:package.json", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", - "build_file_substitutions": { - "bazel_worker_version": "5.4.2", - "google_protobuf_version": "3.20.1" - }, "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] @@ -546,14 +550,8 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "bzlmod": true, "version": "5.9.2", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", - "build_file_substitutions": { - "bazel_worker_version": "5.4.2", - "google_protobuf_version": "3.20.1" - }, "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] @@ -563,15 +561,9 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "bzlmod": true, "version": "", "version_from": "@@devinfra~//bazel:package.json", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", - "build_file_substitutions": { - "bazel_worker_version": "5.4.2", - "google_protobuf_version": "3.20.1" - }, "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] @@ -581,15 +573,9 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "bzlmod": true, "version": "", "version_from": "@@rules_browsers~//:package.json", "integrity": "", - "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript", - "build_file_substitutions": { - "bazel_worker_version": "5.4.2", - "google_protobuf_version": "3.20.1" - }, "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] @@ -597,6 +583,16 @@ } }, "recordedRepoMappingEntries": [ + [ + "aspect_rules_ts~", + "aspect_rules_ts", + "aspect_rules_ts~" + ], + [ + "aspect_rules_ts~", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" + ], [ "aspect_rules_ts~", "bazel_tools", @@ -607,8 +603,8 @@ }, "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { - "bzlTransitiveDigest": "cLuD0cAZWm2SwvVSu2NHX+0x33L7A5+Shk+6Qcw9oik=", - "usagesDigest": "+wlgnpY3uHPdBIF0xJrM3S4M8VNpQumRmF42FjBGSE4=", + "bzlTransitiveDigest": "9U/UW6moiJI22q2ERFWJSK1omQJqmQgMYfWCWNL+SXk=", + "usagesDigest": "6/bgMygODvT9WjYi5vm4e/BEkvhIDHgwWRIhAQhvKts=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -619,7 +615,8 @@ "attributes": { "deps": { "aspect_rules_js": "2.4.2", - "aspect_tools_telemetry": "0.2.3" + "aspect_rules_ts": "3.7.0", + "aspect_tools_telemetry": "0.2.6" } } } From ec75be0fd4bde6bc8c3ed929eeac4e2a4a236ce9 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 06:07:17 +0000 Subject: [PATCH 040/228] build: update pnpm to v10.15.0 See associated pull request for more information. --- MODULE.bazel.lock | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index dbe222baad7a..a417c5125f0d 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "6b974d9784b00e8a78a50cf0f3bfd4d9200c839173b2453488ff901b7779ceb1", + "@@//package.json": "5bdc389ed0400441e1f64082643d1ea2cc5a4b3b9bf1c2cdd66ca8a1d00526f0", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index dcb9e53a59d4..499e21227240 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.14.0", + "packageManager": "pnpm@10.15.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", From 8d7e38db9e370d5b8e1c33d9be9baed00704b0b3 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:21:53 +0000 Subject: [PATCH 041/228] ci: use `D:/` instead of `C:/` and sharding fixes On Windows 2025, `D:/` was re-introduced again this week to improve performance https://github.com/actions/runner-images/issues/12744 Also, this change reduced the shards to 1 on PR workflow, additional we also fix an issue where in each shard we split the tests into another 4 shards which on Windows causes a lot of IO operations. Difference: `e2e_windows (windows-2025, 22, npm, 1)` from `48m 13s` to `20m 16s` (cherry picked from commit a1ef96bc8f9ccb50318fae5cb867407ea66913d8) --- .../windows-bazel-test/action.yml | 14 +++--- .github/workflows/pr.yml | 1 + scripts/windows-testing/parallel-executor.mjs | 44 +++++++++---------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 10f389d2f7fe..2de7132c17cc 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -49,9 +49,11 @@ runs: run: | cd ${{steps.init_wsl.outputs.repo_path}} tar -cf /tmp/test.tar.gz dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_ - mkdir /mnt/c/test - mv /tmp/test.tar.gz /mnt/c/test - (cd /mnt/c/test && tar -xf /mnt/c/test/test.tar.gz) + # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 + mkdir /mnt/d/test + mkdir /mnt/d/tmp_dir + mv /tmp/test.tar.gz /mnt/d/test + (cd /mnt/d/test && tar -xf /mnt/d/test/test.tar.gz) - name: Convert symlinks for Windows host shell: wsl-bash {0} @@ -61,7 +63,7 @@ runs: cd ${{steps.init_wsl.outputs.repo_path}} - runfiles_dir="/mnt/c/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" + runfiles_dir="/mnt/d/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" # Make WSL symlinks compatible on Windows native file system. node scripts/windows-testing/convert-symlinks.mjs $runfiles_dir "${{steps.init_wsl.outputs.cmd_path}}" @@ -75,7 +77,9 @@ runs: shell: bash env: BAZEL_BINDIR: '.' - working-directory: "C:\\test" + # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 + E2E_TEMP: 'D:\\tmp_dir' + working-directory: "D:\\test" run: | node "${{github.workspace}}\\scripts\\windows-testing\\parallel-executor.mjs" \ $PWD/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles \ diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 9f95f87c9ac8..9c88b05db4f2 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -142,6 +142,7 @@ jobs: - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test with: + E2E_SHARD_TOTAL: 1 test_target_name: e2e_node22 test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs index a416d5c90def..7a7ec7508929 100644 --- a/scripts/windows-testing/parallel-executor.mjs +++ b/scripts/windows-testing/parallel-executor.mjs @@ -14,36 +14,32 @@ const initialStatusRegex = /Running (\d+) tests/; async function main() { const [runfilesDir, targetName, testArgs] = process.argv.slice(2); - const maxShards = 4; - const testEntrypoint = path.resolve(runfilesDir, '../', targetName); const testWorkingDir = path.resolve(runfilesDir, '_main'); const tasks = []; const progress = {}; - for (let i = 0; i < maxShards; i++) { - tasks.push( - spawnTest( - 'bash', - [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], - { - cwd: testWorkingDir, - env: { - // Try to construct a pretty hermetic environment, as within Bazel. - PATH: process.env.PATH, - TEST_TOTAL_SHARDS: maxShards, - TEST_SHARD_INDEX: i, - E2E_SHARD_TOTAL: process.env.E2E_SHARD_TOTAL, - E2E_SHARD_INDEX: process.env.E2E_SHARD_INDEX, - FORCE_COLOR: '3', - // Needed by `rules_js` - BAZEL_BINDIR: '.', - }, + tasks.push( + spawnTest( + 'bash', + [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], + { + cwd: testWorkingDir, + env: { + // Try to construct a pretty hermetic environment, as within Bazel. + PATH: process.env.PATH, + E2E_SHARD_TOTAL: process.env.E2E_SHARD_TOTAL, + E2E_SHARD_INDEX: process.env.E2E_SHARD_INDEX, + FORCE_COLOR: '3', + // Needed by `rules_js` + BAZEL_BINDIR: '.', + // Needed to run the E2E in a different temp path. + E2E_TEMP: process.env.E2E_TEMP, }, - (s) => (progress[i] = s), - ), - ); - } + }, + (s) => (progress[0] = s), + ), + ); const printUpdate = () => { console.error(`----`); From 6937123a393e2ba9221962b0174056c14437a988 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:27:27 -0400 Subject: [PATCH 042/228] fix(@schematics/angular): directly resolve karma config template in migration To attempt to workaround Windows pathing issues in the karma configuration migration, the default karma template is now resolved via `require.resolve`. (cherry picked from commit 6c7b798332786d29070460669e093e37902c4438) --- .../angular/migrations/karma/karma-config-comparer.ts | 2 +- .../schematics/angular/migrations/migration-collection.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/schematics/angular/migrations/karma/karma-config-comparer.ts b/packages/schematics/angular/migrations/karma/karma-config-comparer.ts index 2656ea65f406..0c11a7196f1c 100644 --- a/packages/schematics/angular/migrations/karma/karma-config-comparer.ts +++ b/packages/schematics/angular/migrations/karma/karma-config-comparer.ts @@ -41,7 +41,7 @@ export async function generateDefaultKarmaConfig( projectName: string, needDevkitPlugin: boolean, ): Promise { - const templatePath = path.join(__dirname, '../../config/files/karma.conf.js.template'); + const templatePath = require.resolve('../../config/files/karma.conf.js.template'); let template = await readFile(templatePath, 'utf-8'); // TODO: Replace this with the actual schematic templating logic. diff --git a/packages/schematics/angular/migrations/migration-collection.json b/packages/schematics/angular/migrations/migration-collection.json index ec0311d27d97..ad8607071294 100644 --- a/packages/schematics/angular/migrations/migration-collection.json +++ b/packages/schematics/angular/migrations/migration-collection.json @@ -1,4 +1,5 @@ { + "encapsulation": false, "schematics": { "replace-provide-server-rendering-import": { "version": "20.0.0", From ffff9ea2ffe74b0377ace243a1c497180cec1ec9 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:57:34 -0400 Subject: [PATCH 043/228] refactor(@angular/cli): allow first-party schematics to override encapsulation In some cases it may be needed to override the schematics encapsulation option for some first-party schematics. While this is not recommended, certain Node.js functionality may need to be available. (cherry picked from commit 12533a8c4e908885ecc4060262b54c6bdea32106) --- .../utilities/schematic-engine-host.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts b/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts index e4b805f1a367..25b723c467a2 100644 --- a/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts +++ b/packages/angular/cli/src/command-builder/utilities/schematic-engine-host.ts @@ -20,7 +20,10 @@ import { assertIsError } from '../../utilities/error'; */ const schematicRedirectVariable = process.env['NG_SCHEMATIC_REDIRECT']?.toLowerCase(); -function shouldWrapSchematic(schematicFile: string, schematicEncapsulation: boolean): boolean { +function shouldWrapSchematic( + schematicFile: string, + schematicEncapsulation: boolean | undefined, +): boolean { // Check environment variable if present switch (schematicRedirectVariable) { case '0': @@ -52,12 +55,12 @@ function shouldWrapSchematic(schematicFile: string, schematicEncapsulation: bool // Check for first-party Angular schematic packages // Angular schematics are safe to use in the wrapped VM context - if (/\/node_modules\/@(?:angular|schematics|nguniversal)\//.test(normalizedSchematicFile)) { - return true; - } + const isFirstParty = /\/node_modules\/@(?:angular|schematics|nguniversal)\//.test( + normalizedSchematicFile, + ); - // Otherwise use the value of the schematic collection's encapsulation option (current default of false) - return schematicEncapsulation; + // Use value of defined option if present, otherwise default to first-party usage. + return schematicEncapsulation ?? isFirstParty; } export class SchematicEngineHost extends NodeModulesEngineHost { @@ -73,7 +76,7 @@ export class SchematicEngineHost extends NodeModulesEngineHost { const referenceRequire = createRequire(__filename); const schematicFile = referenceRequire.resolve(fullPath, { paths: [parentPath] }); - if (shouldWrapSchematic(schematicFile, !!collectionDescription?.encapsulation)) { + if (shouldWrapSchematic(schematicFile, collectionDescription?.encapsulation)) { const schematicPath = dirname(schematicFile); const moduleCache = new Map(); From 9d6863bc05f4b449e0ffbd4e4973b064f0349b38 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 13:12:56 +0000 Subject: [PATCH 044/228] build: update github/codeql-action action to v3.29.11 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f2bb3940a3b6..554d2dfab71c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -23,12 +23,12 @@ jobs: with: persist-credentials: false - name: Initialize CodeQL - uses: github/codeql-action/init@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/init@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/analyze@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b2ed77eab147..bbca5b6bc870 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -46,6 +46,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@df559355d593797519d70b90fc8edd5db049e7a2 # v3.29.9 + uses: github/codeql-action/upload-sarif@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 with: sarif_file: results.sarif From 22895074ae3fe93b22552febe1f77e523c003625 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 21 Aug 2025 18:07:13 +0000 Subject: [PATCH 045/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 42 +-- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 24 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 268 +++++++++--------- 13 files changed, 210 insertions(+), 210 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 2de7132c17cc..0bcd5cfd0c84 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/setup-wsl@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f0990e775216..98e655c2189f 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/branch-manager@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbfb3a0c35c8..b4cc5fe9ba69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a5272ec58428..d85991daed54 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/pull-request-labeling@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/post-approval-changes@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index cde9ef5cd907..c8287f18d095 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@5dcd68302563500c0931b35b8d42e03ad5157db1 + - uses: angular/dev-infra/github-actions/feature-request@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 4e8d2393e00d..a1cc139e2f06 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 9c88b05db4f2..a2c4d35f6b1f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/linting/licenses@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -158,13 +158,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -181,12 +181,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@5dcd68302563500c0931b35b8d42e03ad5157db1 + uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 45463d56cc02..dd0f0a7a0d0b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "5dcd68302563500c0931b35b8d42e03ad5157db1", + commit = "9cc4fc69c644e345ce44169c7cd84e729c8d29bb", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a417c5125f0d..7c2684041688 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "5bdc389ed0400441e1f64082643d1ea2cc5a4b3b9bf1c2cdd66ca8a1d00526f0", + "@@//package.json": "728fa6842f644227e282f7b8158ddfa67deeec5068ede098d72df6addbc2b5b6", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 499e21227240..7fef0db5bdb1 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.0", + "@angular/animations": "20.2.1", "@angular/cdk": "20.2.0", - "@angular/common": "20.2.0", - "@angular/compiler": "20.2.0", - "@angular/compiler-cli": "20.2.0", - "@angular/core": "20.2.0", - "@angular/forms": "20.2.0", - "@angular/localize": "20.2.0", + "@angular/common": "20.2.1", + "@angular/compiler": "20.2.1", + "@angular/compiler-cli": "20.2.1", + "@angular/core": "20.2.1", + "@angular/forms": "20.2.1", + "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3", - "@angular/platform-browser": "20.2.0", - "@angular/platform-server": "20.2.0", - "@angular/router": "20.2.0", - "@angular/service-worker": "20.2.0", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465", + "@angular/platform-browser": "20.2.1", + "@angular/platform-server": "20.2.1", + "@angular/router": "20.2.1", + "@angular/service-worker": "20.2.1", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 87d4700da7c0..839432fe864c 100644 --- a/packages/angular/ssr/package.json +++ b/packages/angular/ssr/package.json @@ -29,12 +29,12 @@ }, "devDependencies": { "@angular-devkit/schematics": "workspace:*", - "@angular/common": "20.2.0", - "@angular/compiler": "20.2.0", - "@angular/core": "20.2.0", - "@angular/platform-browser": "20.2.0", - "@angular/platform-server": "20.2.0", - "@angular/router": "20.2.0", + "@angular/common": "20.2.1", + "@angular/compiler": "20.2.1", + "@angular/core": "20.2.1", + "@angular/platform-browser": "20.2.1", + "@angular/platform-server": "20.2.1", + "@angular/router": "20.2.1", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 319709ad8646..ece914ec8df0 100644 --- a/packages/ngtools/webpack/package.json +++ b/packages/ngtools/webpack/package.json @@ -27,8 +27,8 @@ }, "devDependencies": { "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", - "@angular/compiler": "20.2.0", - "@angular/compiler-cli": "20.2.0", + "@angular/compiler": "20.2.1", + "@angular/compiler-cli": "20.2.1", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0885f2f68745..6119e18f55c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/compiler-cli': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@angular/core': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1) '@angular/material': specifier: 20.2.0 - version: 20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec) + version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d4d56bbdde1c29d7a97080bde10dd87aec64a0c3 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.2.0 - version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - specifier: 20.2.0 - version: 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/core': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.2.0 - version: 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.1 + version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.2.0 - version: 20.2.0 + specifier: 20.2.1 + version: 20.2.1 '@angular/compiler-cli': - specifier: 20.2.0 - version: 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + specifier: 20.2.1 + version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,12 +975,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.0': - resolution: {integrity: sha512-byenV4zWPCP8COriHO+1FGCG/3+xUqzX4VSWashWsGHuXv/AKboh88qVL4xGvDGESEdqN/tpiU9KBonue+Axvg==} + '@angular/animations@20.2.1': + resolution: {integrity: sha512-g4yLXwXCF7OAahx1xI4FXRwG4dIXfBqHsvlpx2TappaMRpiPp7PfP2cW6l3ox+KRpTWhSvcRqbJyIOWad0f7Rw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 '@angular/cdk@20.2.0': resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} @@ -989,33 +989,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.0': - resolution: {integrity: sha512-mh0tF+QjCx1udoeBP4adOXVHVZ1E8okzT/yybYamD5abLiaMSSh4P50JTBuPmJgqqWo9MXDLOLTnKqBSv/FbZw==} + '@angular/common@20.2.1': + resolution: {integrity: sha512-T6RYnDZA9TyYhj2hUz4set8p4RbBCg6IKUvy6qzdKTl4nn4xQ0XUV7aGBYN4LKiGrse9lzlVUAyXtkhmwuBbCQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.0 + '@angular/core': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.0': - resolution: {integrity: sha512-mZ7R7tMm1KMBZSCOKSeE9gb37u2ZGc5YlQ8bIgKo+Uik2uvXVDDG1NC/Qe/medYCriSGmI6HqfFce50Nx8/Uxg==} + '@angular/compiler-cli@20.2.1': + resolution: {integrity: sha512-VpbcRqNPJvy1L9RDtGGQsQiOrMzxodUWklphbtnh9MrrK6lLuy6Qj2ROiW7vKL9WfLTCXWA24gBAcMAR76dq3Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.0': - resolution: {integrity: sha512-1kI7VFvuTODX/1TusUH/L1N+SDcDj9m/j/0Ewq+IKkizS4eOjgx+7UGBuTjw9yWZ7QQGEPdoQG9qsM2dhs9dUQ==} + '@angular/compiler@20.2.1': + resolution: {integrity: sha512-ghVt1E8xmwjMwqyGRwXYJkr7fz40VEreUSX1q+gEzbGTftVrK1foxPT8jcueIn0ztArDf7+zSMtu314FiJZyYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.0': - resolution: {integrity: sha512-4qXWdKYRFNlc1FfgNfYF5189rZ8BnvU5DN2iH2/djRdRJikpm3+JeEuFW7GFjF9dyjOE97x0S3dbVHs0c5mcYA==} + '@angular/core@20.2.1': + resolution: {integrity: sha512-/hl3AkmdQ62P9ttmfULEDg9GIz7BkzhGv9bSH2ssiU3Y4ax6eM8uQXEbMxBA8OUKOvg1Q4POcNHIiJQgO5t28Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,22 +1024,22 @@ packages: zone.js: optional: true - '@angular/forms@20.2.0': - resolution: {integrity: sha512-vG5FIMCGNDMbaWPSazd5Jv14cW+aVUg8G5ikWRSGU1aou7uzmzT2n+zpg4PDSxOFeNXuSZV3n5zJ5prM1NaYJg==} + '@angular/forms@20.2.1': + resolution: {integrity: sha512-SfkiHEIFPLtTKeaXUTpRfYnpJDxaeKiTi0YqfvzEjKE68qH0t+pQ4rL0Poch2/l4snP6JS1XzO/nDve1dk3vZw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.0': - resolution: {integrity: sha512-XKYinzSPk72Eae60HpP5yWPLf6Yo/y5esd20/gRRpZ0rQMbRFPtWoHnAk+5jOCeQaBaxx25MX312TVLxjS5+0Q==} + '@angular/localize@20.2.1': + resolution: {integrity: sha512-vemzYcHt6YX4FutpgNXiXTpKCMVaJdOG/m2+oJyvnr8KvdlrJKczXraPVY4ER+WJiHC5IQSg24otdSFc0UH2JA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.0 - '@angular/compiler-cli': 20.2.0 + '@angular/compiler': 20.2.1 + '@angular/compiler-cli': 20.2.1 '@angular/material@20.2.0': resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} @@ -1051,47 +1051,47 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3} - version: 0.0.0-5dcd68302563500c0931b35b8d42e03ad5157db1 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465} + version: 0.0.0-974f5f6e013469225b2716078fe0b09c66d81c99 hasBin: true - '@angular/platform-browser@20.2.0': - resolution: {integrity: sha512-0CyDeXLQixXAWRBq4vfwALo0a0/igtUH1bFkHBUy4u6Nku7S8K7GG/HDN0CGlpep9Xz9o0ghF1zfZHfmEQxlmg==} + '@angular/platform-browser@20.2.1': + resolution: {integrity: sha512-oxDih/A8G7W+I6oAip+sev+kebioYmzhB/NMzF8C8zx/ieVDzatJ+YeEZQt7eDaJLH94S4sIC25SPq3OFIabxg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.0 - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 + '@angular/animations': 20.2.1 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.0': - resolution: {integrity: sha512-OzVqm3NCGScL4Jd4M3XVTMkCIijYd0NuuVo6UH+UThaFFKde7ISePGaVh0GlXw+rGl9m/gJL3WMIZh3xfqHAlA==} + '@angular/platform-server@20.2.1': + resolution: {integrity: sha512-yjos8jgHwcih9lF/CKjbKxzzc83NM+ZoIdm/XSVv9yg+QDnTsc6bLF3QZ+OChCoaCks/UtWUwyM7Ux2g/VvVFA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/compiler': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/compiler': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.0': - resolution: {integrity: sha512-pUrRVdgHkkd1b3GqHpuq/4YJTuNYGXWykg9t5MUjnt94H6gynpyEmYEZB+RNqwTTZLHgRRv9Y7JMRbwIdupNpA==} + '@angular/router@20.2.1': + resolution: {integrity: sha512-f8KfG55EVnFDC9ud+MbxAP6voKi7hVQH4YaqPK0Lm6pyc1Xp0I5W25iRbg+Y1rO1csHKHauBPkUEESEuVGBGqg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.0 - '@angular/core': 20.2.0 - '@angular/platform-browser': 20.2.0 + '@angular/common': 20.2.1 + '@angular/core': 20.2.1 + '@angular/platform-browser': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.0': - resolution: {integrity: sha512-ERJQ5KLAXqG0nyD09lZqyVaQv9Es08+5DZZRZf/OQC3GapGV71JcdcEC3yOr5agZLSNFkuiCzufBad5QIvZzPQ==} + '@angular/service-worker@20.2.1': + resolution: {integrity: sha512-BiwtxSXooM/JlW6C0TixogHxXyL4eio9fcwsJTBgqoyfuom+GI+VMcDKcVi5X6cJnfpbmSzO1qNEzpdr+EgqvQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.0 + '@angular/core': 20.2.1 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -9075,29 +9075,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9111,30 +9111,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.0': + '@angular/compiler@20.2.1': dependencies: tslib: 2.8.1 - '@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.0 + '@angular/compiler': 20.2.1 zone.js: 0.15.1 - '@angular/forms@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(@angular/compiler@20.2.0)': + '@angular/localize@20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1)': dependencies: - '@angular/compiler': 20.2.0 - '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@angular/compiler': 20.2.1 + '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9142,17 +9142,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.0(8b985ab3c81a51d5b9ac997fd840b0ec)': + '@angular/material@20.2.0(bcb75b43408852e5fcaf27839f79fc2c)': dependencies: - '@angular/cdk': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d4d56bbdde1c29d7a97080bde10dd87aec64a0c3(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -9214,35 +9214,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.0)(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.0 - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.1 + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.0(@angular/animations@20.2.0(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.2.0(@angular/core@20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.0(@angular/compiler@20.2.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -15841,10 +15841,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0(@angular/compiler-cli@20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.0(@angular/compiler@20.2.0)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.46.2 ajv: 8.17.1 From f9424244ce16142defd9da33a9f90a42005fab8a Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 21 Aug 2025 18:33:26 +0000 Subject: [PATCH 046/228] ci: set `E2E_SHARD_TOTAL` as env variable Whlist this defaults to 1 when not supplied, it's cleaner that this is 1. Also, this is not an action input. (cherry picked from commit 290ac55c31e86109334ccd1993bc8f4a0999722a) --- .github/workflows/pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a2c4d35f6b1f..fbce65ae5e19 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -141,8 +141,9 @@ jobs: allow_windows_rbe: true - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test - with: + env: E2E_SHARD_TOTAL: 1 + with: test_target_name: e2e_node22 test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" From f89aa0a9582cffaed5804b0fab46d01cc5fdc951 Mon Sep 17 00:00:00 2001 From: Aristeidis Bampakos Date: Thu, 21 Aug 2025 18:21:00 +0300 Subject: [PATCH 047/228] build(@angular-devkit/schematics-cli): move TypeScript to development dependencies (cherry picked from commit 989e9889fb917dbc38f656d0604531702e5fcbec) --- .../schematics_cli/schematic/files/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/angular_devkit/schematics_cli/schematic/files/package.json b/packages/angular_devkit/schematics_cli/schematic/files/package.json index 27401b64c629..c050ebeda711 100644 --- a/packages/angular_devkit/schematics_cli/schematic/files/package.json +++ b/packages/angular_devkit/schematics_cli/schematic/files/package.json @@ -14,12 +14,12 @@ "schematics": "./src/collection.json", "dependencies": { "@angular-devkit/core": "^<%= coreVersion %>", - "@angular-devkit/schematics": "^<%= schematicsVersion %>", - "typescript": "~5.9.2" + "@angular-devkit/schematics": "^<%= schematicsVersion %>" }, "devDependencies": { "@types/node": "^20.17.19", "@types/jasmine": "~5.1.0", - "jasmine": "~5.9.0" + "jasmine": "~5.9.0", + "typescript": "~5.9.2" } } From 1b6f98ed6fb01f11bb622ff7bd7562796998c05f Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Wed, 13 Aug 2025 12:02:08 +0200 Subject: [PATCH 048/228] refactor(@angular/cli): remove non runnable migrations in mcp modernize tool The `test-bed-get` migration is not runnable via `ng g @angular/core` and references an non-existing documentation page. `zoneless` does not exist for now (Angular v20.2.0-rc.0). (cherry picked from commit 0f2694464f4bae590a6fd3ed8893038a6d1adc15) --- .../angular/cli/src/commands/mcp/tools/modernize.ts | 11 ----------- .../cli/src/commands/mcp/tools/modernize_spec.ts | 8 ++++---- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/modernize.ts b/packages/angular/cli/src/commands/mcp/tools/modernize.ts index ec4a4b02c913..2b4c323d60f7 100644 --- a/packages/angular/cli/src/commands/mcp/tools/modernize.ts +++ b/packages/angular/cli/src/commands/mcp/tools/modernize.ts @@ -29,12 +29,6 @@ const TRANSFORMATIONS: Array = [ 'Converts tags for elements with no content to be self-closing (e.g., `` becomes ``).', documentationUrl: 'https://angular.dev/reference/migrations/self-closing-tags', }, - { - name: 'test-bed-get', - description: - 'Updates `TestBed.get` to the preferred and type-safe `TestBed.inject` in TypeScript test files.', - documentationUrl: 'https://angular.dev/guide/testing/dependency-injection', - }, { name: 'inject', description: 'Converts usages of constructor-based injection to the inject() function.', @@ -70,11 +64,6 @@ const TRANSFORMATIONS: Array = [ '3. Run `ng g @angular/core:standalone` and select "Bootstrap the project using standalone APIs"', documentationUrl: 'https://angular.dev/reference/migrations/standalone', }, - { - name: 'zoneless', - description: 'Migrates the application to be zoneless.', - documentationUrl: 'https://angular.dev/guide/zoneless', - }, ]; const modernizeInputSchema = z.object({ diff --git a/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts b/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts index cc49dcba10b6..4c5e4cdacdcc 100644 --- a/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts +++ b/packages/angular/cli/src/commands/mcp/tools/modernize_spec.ts @@ -35,16 +35,16 @@ describe('Modernize Tool', () => { it('should return instructions for multiple transformations', async () => { const instructions = await getInstructions({ - transformations: ['self-closing-tags-migration', 'test-bed-get'], + transformations: ['self-closing-tags-migration', 'inject'], }); const expectedInstructions = [ 'To run the self-closing-tags-migration migration, execute the following command: ' + '`ng generate @angular/core:self-closing-tags-migration`.\nFor more information, ' + 'see https://angular.dev/reference/migrations/self-closing-tags.', - 'To run the test-bed-get migration, execute the following command: ' + - '`ng generate @angular/core:test-bed-get`.\nFor more information, ' + - 'see https://angular.dev/guide/testing/dependency-injection.', + 'To run the inject migration, execute the following command: ' + + '`ng generate @angular/core:inject`.\nFor more information, ' + + 'see https://angular.dev/reference/migrations/inject-function.', ]; expect(instructions?.sort()).toEqual(expectedInstructions.sort()); From dc948b137763b7e5d8e159597532e8a85a1e2f62 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 22 Aug 2025 15:05:48 +0000 Subject: [PATCH 049/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 6 +-- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 11 files changed, 65 insertions(+), 65 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 0bcd5cfd0c84..94582de287a0 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/setup-wsl@029d16b075db696b35d0d661d0fd3a0552a4b452 with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 98e655c2189f..f40bdadc2fdb 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/branch-manager@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4cc5fe9ba69..0480ac440928 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d85991daed54..a841c1bcf13b 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/pull-request-labeling@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/post-approval-changes@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index c8287f18d095..d106fd590899 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + - uses: angular/dev-infra/github-actions/feature-request@029d16b075db696b35d0d661d0fd3a0552a4b452 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index a1cc139e2f06..ca1179c74b02 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index fbce65ae5e19..5c35706910c8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/linting/licenses@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -159,13 +159,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -182,12 +182,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@9cc4fc69c644e345ce44169c7cd84e729c8d29bb + uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index dd0f0a7a0d0b..e9d1fe9024bf 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "9cc4fc69c644e345ce44169c7cd84e729c8d29bb", + commit = "029d16b075db696b35d0d661d0fd3a0552a4b452", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 7c2684041688..aaf671faf9ac 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "728fa6842f644227e282f7b8158ddfa67deeec5068ede098d72df6addbc2b5b6", + "@@//package.json": "8f8772821333c022f0cd86a9e5c74cdff0a7aee1dd74ced16ed0c0fec6d3c862", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -674,7 +674,7 @@ "@@rules_angular~//setup:extensions.bzl%rules_angular": { "general": { "bzlTransitiveDigest": "fkaH7HMicL3g7/NDaFzlq39kcLopMyQ3KdbDn+5CRzA=", - "usagesDigest": "4vjoXp94lW/cnp3G5Nbi6SdqHuFBsaA7m/u83of5HE8=", + "usagesDigest": "mthsJSuRvcThgmaeFEDgFmVR6HwM1CSMSOyLlJaCSI0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -700,7 +700,7 @@ "ruleClassName": "configurable_deps_repo", "attributes": { "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli", - "typescript": "@@rules_angular~//:node_modules/typescript-local" + "typescript": "@@rules_angular~//:node_modules/typescript" } } }, diff --git a/package.json b/package.json index 7fef0db5bdb1..e64373992a26 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6119e18f55c2..1f61c30f7e24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c39d429a886378cd06151323773e807ca7a57465 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465} - version: 0.0.0-974f5f6e013469225b2716078fe0b09c66d81c99 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47} + version: 0.0.0-029d16b075db696b35d0d661d0fd3a0552a4b452 hasBin: true '@angular/platform-browser@20.2.1': @@ -9152,7 +9152,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c39d429a886378cd06151323773e807ca7a57465(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) From e55ebf229312e09e2fb941786d9fb981a98777c2 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 22 Aug 2025 17:06:03 +0000 Subject: [PATCH 050/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 11 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 94582de287a0..d0a2b890a4ed 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/setup-wsl@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f40bdadc2fdb..57914e9f5b25 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/branch-manager@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0480ac440928..ca2e7cbbe961 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,11 +110,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -138,13 +138,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -163,13 +163,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -183,13 +183,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -219,11 +219,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a841c1bcf13b..ec6a30535f04 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/pull-request-labeling@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/post-approval-changes@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index d106fd590899..7c23648757b1 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@029d16b075db696b35d0d661d0fd3a0552a4b452 + - uses: angular/dev-infra/github-actions/feature-request@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ca1179c74b02..163d78aa79b9 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 5c35706910c8..b7c5cc8bdba8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/linting/licenses@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -132,11 +132,11 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -159,13 +159,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -182,12 +182,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index e9d1fe9024bf..9ecf2dd251db 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "029d16b075db696b35d0d661d0fd3a0552a4b452", + commit = "cb03391a53dec7a1d7de8f3b2cd60935e82837fa", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index aaf671faf9ac..fe427948fd20 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -527,7 +527,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "8f8772821333c022f0cd86a9e5c74cdff0a7aee1dd74ced16ed0c0fec6d3c862", + "@@//package.json": "406bdfc8263612d153a8873abbd33e848e42566e4aed75958f66186f3675f7d7", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index e64373992a26..58b8a917f2b7 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f61c30f7e24..dc3bc4e85da5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#d28edf09c7e59d9e196f009c2715c7c87c2eda47 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47} - version: 0.0.0-029d16b075db696b35d0d661d0fd3a0552a4b452 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35} + version: 0.0.0-cb03391a53dec7a1d7de8f3b2cd60935e82837fa hasBin: true '@angular/platform-browser@20.2.1': @@ -9152,7 +9152,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/d28edf09c7e59d9e196f009c2715c7c87c2eda47(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) From c5484b27b7f05d17acdd7202ab3ac734a7e371a6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 07:06:11 +0000 Subject: [PATCH 051/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 926 ++++++++++++++++++++++++++----------------------- 1 file changed, 491 insertions(+), 435 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc3bc4e85da5..7b609cbeb868 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,7 +111,7 @@ importers: version: 4.1.1 '@types/jasmine': specifier: ~5.1.0 - version: 5.1.8 + version: 5.1.9 '@types/jasmine-reporters': specifier: ^2 version: 2.5.3 @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.17.1 + version: 22.17.2 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.17.1)(rollup@4.46.2) + version: 0.5.3(@types/node@22.17.2)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.4.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.17.1)(typescript@5.9.2) + version: 10.9.2(@types/node@22.17.2)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.25.2 + version: 4.25.3 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 - version: 4.25.2 + version: 4.25.3 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -1121,12 +1121,6 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.27.1': - resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.28.3': resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} engines: {node: '>=6.9.0'} @@ -1156,12 +1150,6 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} @@ -1208,19 +1196,14 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.27.1': - resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} + '@babel/helper-wrap-function@7.28.3': + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} '@babel/helpers@7.28.3': resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.0': - resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.3': resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} engines: {node: '>=6.0.0'} @@ -1611,10 +1594,6 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.0': - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} engines: {node: '>=6.9.0'} @@ -1639,8 +1618,8 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.4': @@ -1650,8 +1629,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.10': - resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 @@ -2182,8 +2161,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/checkbox@4.2.1': - resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==} + '@inquirer/checkbox@4.2.2': + resolution: {integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2200,8 +2179,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + '@inquirer/core@10.2.0': + resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2209,8 +2188,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.17': - resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==} + '@inquirer/editor@4.2.18': + resolution: {integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2218,8 +2197,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.17': - resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} + '@inquirer/expand@4.0.18': + resolution: {integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2240,8 +2219,8 @@ packages: resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/input@4.2.1': - resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} + '@inquirer/input@4.2.2': + resolution: {integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2249,8 +2228,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.17': - resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} + '@inquirer/number@3.0.18': + resolution: {integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2258,8 +2237,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.17': - resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} + '@inquirer/password@4.0.18': + resolution: {integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2285,8 +2264,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.5': - resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} + '@inquirer/rawlist@4.1.6': + resolution: {integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2294,8 +2273,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.0': - resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} + '@inquirer/search@3.1.1': + resolution: {integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2303,8 +2282,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.1': - resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} + '@inquirer/select@4.3.2': + resolution: {integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2381,14 +2360,14 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.10.0': - resolution: {integrity: sha512-PMOU9Sh0baiLZEDewwR/YAHJBV2D8pPIzcFQSU7HQl/k/HNCDyVfO1OvkyDwBGp4dPtvZc7Hl9FFYWwTP1CbZw==} + '@jsonjoy.com/json-pack@1.11.0': + resolution: {integrity: sha512-nLqSTAYwpk+5ZQIoVp7pfd/oSKNWlEdvTq2LzVA4r2wtWZg6v+5u0VgBOaDJuUfNOuw/4Ysq6glN5QKSrOCgrA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/json-pointer@1.0.1': - resolution: {integrity: sha512-tJpwQfuBuxqZlyoJOSZcqf7OUmiYQ6MiPNmOv4KbZdXE/DdvBSSAwhos0zIlJU/AXxC8XpuO8p08bh2fIl+RKA==} + '@jsonjoy.com/json-pointer@1.0.2': + resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -2478,108 +2457,114 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.39.5': - resolution: {integrity: sha512-B9nHSJYtsv79uo7QdkZ/b/WoKm20IkVSmTc/WCKarmDtFwM0dRx2ouEniqwNkzCSLn3fydzKmnMzjtfdOWt3VQ==} + '@mswjs/interceptors@0.39.6': + resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} engines: {node: '>=18'} - '@napi-rs/nice-android-arm-eabi@1.0.4': - resolution: {integrity: sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==} + '@napi-rs/nice-android-arm-eabi@1.1.1': + resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/nice-android-arm64@1.0.4': - resolution: {integrity: sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==} + '@napi-rs/nice-android-arm64@1.1.1': + resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/nice-darwin-arm64@1.0.4': - resolution: {integrity: sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==} + '@napi-rs/nice-darwin-arm64@1.1.1': + resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/nice-darwin-x64@1.0.4': - resolution: {integrity: sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==} + '@napi-rs/nice-darwin-x64@1.1.1': + resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/nice-freebsd-x64@1.0.4': - resolution: {integrity: sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==} + '@napi-rs/nice-freebsd-x64@1.1.1': + resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': - resolution: {integrity: sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==} + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/nice-linux-arm64-gnu@1.0.4': - resolution: {integrity: sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==} + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-arm64-musl@1.0.4': - resolution: {integrity: sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==} + '@napi-rs/nice-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-ppc64-gnu@1.0.4': - resolution: {integrity: sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==} + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] - '@napi-rs/nice-linux-riscv64-gnu@1.0.4': - resolution: {integrity: sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==} + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@napi-rs/nice-linux-s390x-gnu@1.0.4': - resolution: {integrity: sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==} + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] - '@napi-rs/nice-linux-x64-gnu@1.0.4': - resolution: {integrity: sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==} + '@napi-rs/nice-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-linux-x64-musl@1.0.4': - resolution: {integrity: sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==} + '@napi-rs/nice-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-win32-arm64-msvc@1.0.4': - resolution: {integrity: sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==} + '@napi-rs/nice-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [openharmony] + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/nice-win32-ia32-msvc@1.0.4': - resolution: {integrity: sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==} + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/nice-win32-x64-msvc@1.0.4': - resolution: {integrity: sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==} + '@napi-rs/nice-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/nice@1.0.4': - resolution: {integrity: sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==} + '@napi-rs/nice@1.1.1': + resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@1.0.3': @@ -2885,8 +2870,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.6': - resolution: {integrity: sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==} + '@puppeteer/browsers@2.10.7': + resolution: {integrity: sha512-wHWLkQWBjHtajZeqCB74nsa/X70KheyOhySYBRmVQDJiNj0zjZR/naPCvdWjMhcG1LmjaMV/9WtTo5mpe8qWLw==} engines: {node: '>=18'} hasBin: true @@ -3117,8 +3102,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.46.2': - resolution: {integrity: sha512-lZRiZl+B1R3VhqZgORtuUpc2YYbgIv+X6g3LgQHS5sjlf1ENiK1HZ6N5e8pEZ04nAWiwYM0JX7rP0eyxflkJRg==} + '@rollup/wasm-node@4.48.1': + resolution: {integrity: sha512-BGNxbwNHAwBj82DwDHc6Yia1bOs2NP1gvF181l7HYEUGfq8EoFkzr+S6sbuF2j5TXQHWbl/ev1g4kU7ZN4QSPw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3323,6 +3308,9 @@ packages: '@types/jasmine@5.1.8': resolution: {integrity: sha512-u7/CnvRdh6AaaIzYjCgUuVbREFgulhX05Qtf6ZtW+aOcjCKKVvKgpkPYJBFTZSHtFBYimzU4zP0V2vrEsq9Wcg==} + '@types/jasmine@5.1.9': + resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -3363,11 +3351,11 @@ packages: '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node-forge@1.3.13': - resolution: {integrity: sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==} + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.17.1': - resolution: {integrity: sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==} + '@types/node@22.17.2': + resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} '@types/node@24.2.0': resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} @@ -3518,6 +3506,12 @@ packages: peerDependencies: typescript: 5.9.2 + '@typescript-eslint/tsconfig-utils@8.40.0': + resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.9.2 + '@typescript-eslint/type-utils@8.39.1': resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3529,6 +3523,10 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.40.0': + resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.39.1': resolution: {integrity: sha512-EKkpcPuIux48dddVDXyQBlKdeTPMmALqBUbEk38McWv0qVEZwOpVJBi7ugK5qVNgeuYjGNQxrrnoM/5+TI/BPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3755,8 +3753,8 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} '@xtuc/ieee754@1.2.0': @@ -3879,8 +3877,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.0: + resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -4067,8 +4065,8 @@ packages: bare-events@2.6.1: resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.2.0: - resolution: {integrity: sha512-oRfrw7gwwBVAWx9S5zPMo2iiOjxyiZE12DmblmMQREgcogbNO0AFaZ+QBxxkEXiPspcpvO/Qtqn8LabUx4uYXg==} + bare-fs@4.2.1: + resolution: {integrity: sha512-mELROzV0IhqilFgsl1gyp48pnZsaV9xhQapHLDsvn4d4ZTfbFhcghQezl7FTEDNBcGqLUnNI3lUlm6ecrLWdFA==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4076,15 +4074,15 @@ packages: bare-buffer: optional: true - bare-os@3.6.1: - resolution: {integrity: sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==} + bare-os@3.6.2: + resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==} engines: {bare: '>=1.14.0'} bare-path@3.0.0: resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} - bare-stream@2.6.5: - resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + bare-stream@2.7.0: + resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} peerDependencies: bare-buffer: '*' bare-events: '*' @@ -4188,8 +4186,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.25.2: - resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} + browserslist@4.25.3: + resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4262,14 +4260,14 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001734: - resolution: {integrity: sha512-uhE1Ye5vgqju6OI71HTQqcBCZrvHugk0MjLak7Q+HfoBgoq5Bi+5YnwjP4fjDgrtYr/l8MVRBvzz9dPD4KyK0A==} + caniuse-lite@1.0.30001737: + resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - chai@5.2.1: - resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} engines: {node: '>=18'} chalk-template@0.4.0: @@ -4288,6 +4286,10 @@ packages: resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.0: + resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} @@ -4326,8 +4328,8 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - chromium-bidi@7.3.1: - resolution: {integrity: sha512-i+BMGluhZZc4Jic9L1aHJBTfaopxmCqQxGklyMcqFx4fvF3nI4BJ3bCe1ad474nvYRIo/ZN/VrdA4eOaRZua4Q==} + chromium-bidi@8.0.0: + resolution: {integrity: sha512-d1VmE0FD7lxZQHzcDUCKZSNRtRwISXDsdg4HjdTR5+Ll5nQ/vzU12JeNmupD6VWffrPSlrnGhEWlLESKH3VO+g==} peerDependencies: devtools-protocol: '*' @@ -4512,8 +4514,8 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.45.0: - resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} + core-js-compat@3.45.1: + resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -4856,8 +4858,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.200: - resolution: {integrity: sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==} + electron-to-chromium@1.5.208: + resolution: {integrity: sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -5133,8 +5135,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - eventsource-parser@3.0.3: - resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==} + eventsource-parser@3.0.5: + resolution: {integrity: sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==} engines: {node: '>=20.0.0'} eventsource@3.0.7: @@ -5221,8 +5223,9 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -5454,6 +5457,12 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regex.js@1.0.1: + resolution: {integrity: sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -6102,8 +6111,8 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} jackspeak@3.4.3: @@ -6460,8 +6469,8 @@ packages: long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - loupe@3.2.0: - resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lowdb@1.0.0: resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} @@ -6488,6 +6497,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.18: + resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6518,8 +6530,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.36.0: - resolution: {integrity: sha512-mfBfzGUdoEw5AZwG8E965ej3BbvW2F9LxEWj4uLxF6BEh1dO2N9eS3AGu9S6vfenuQYrVjsbUOOZK7y3vz4vyQ==} + memfs@4.38.1: + resolution: {integrity: sha512-exfrOkkU3m0EpbQ0iQJP93HUbkprnIBU7IUnobSNAzHkBUzsklLwENGLEm8ZwJmMuLoFEfv1pYQ54wSpkay4kQ==} engines: {node: '>= 4.0.0'} meow@12.1.1: @@ -6817,8 +6829,8 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@11.3.0: - resolution: {integrity: sha512-9J0+C+2nt3WFuui/mC46z2XCZ21/cKlFDuywULmseD/LlmnOrSeEAE4c/1jw6aybXLmpZnQY3/LmOJfgyHIcng==} + node-gyp@11.4.1: + resolution: {integrity: sha512-GiVxQ1e4TdZSSVmFDYUn6uUsrEUP68pa8C/xBzCfL/FcLHa4reWrxxTP7tRGhNdviYrNsL5kRolBL5LNYEutCw==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true @@ -7372,12 +7384,12 @@ packages: resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} engines: {node: '>= 8'} - proto3-json-serializer@3.0.1: - resolution: {integrity: sha512-Rug90pDIefARAG9MgaFjd0yR/YP4bN3Fov00kckXMjTZa0x86c4WoWfCQFdSeWi9DvRXjhfLlPDIvODB5LOTfg==} + proto3-json-serializer@3.0.2: + resolution: {integrity: sha512-AnMIfnoK2Ml3F/ZVl5PxcwIoefMxj4U/lomJ5/B2eIGdxw4UkbV1YamtsMQsEkZATdMCKMbnI1iG9RQaJbxBGw==} engines: {node: '>=18'} - protobufjs@7.5.3: - resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} protractor@7.0.0: @@ -7423,8 +7435,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.16.1: - resolution: {integrity: sha512-0dGD2kxoH9jqj/xiz4KZLcPKpqWygs+VSEBzvuVbU3KoT2cCw4HnMT9r/7NvYl1lIa+JCa5yIyRqi+4R3UyYfQ==} + puppeteer-core@24.17.0: + resolution: {integrity: sha512-RYOBKFiF+3RdwIZTEacqNpD567gaFcBAOKTT7742FdB1icXudrPI7BlZbYTYWK2wgGQUXt9Zi1Yn+D5PmCs4CA==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -8128,8 +8140,8 @@ packages: resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} engines: {node: '>=12.17'} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + tapable@2.2.3: + resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} engines: {node: '>=6'} tar-fs@2.1.1: @@ -8384,12 +8396,12 @@ packages: resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} engines: {node: '>=12.17'} - ua-parser-js@0.7.40: - resolution: {integrity: sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==} + ua-parser-js@0.7.41: + resolution: {integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==} hasBin: true - ua-parser-js@1.0.40: - resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} hasBin: true uglify-js@3.19.3: @@ -8592,6 +8604,46 @@ packages: yaml: optional: true + vite@7.1.3: + resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8953,8 +9005,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} zod-to-json-schema@3.24.6: @@ -9249,7 +9301,7 @@ snapshots: '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 @@ -9298,23 +9350,10 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.2 + browserslist: 4.25.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 @@ -9350,27 +9389,18 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.3)': - dependencies: - '@babel/core': 7.28.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 @@ -9390,8 +9420,8 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9406,7 +9436,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -9421,10 +9451,10 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.27.1': + '@babel/helper-wrap-function@7.28.3': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -9434,10 +9464,6 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.2 - '@babel/parser@7.28.3': dependencies: '@babel/types': 7.28.2 @@ -9446,7 +9472,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9507,7 +9533,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9533,7 +9559,7 @@ snapshots: '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9568,7 +9594,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9625,7 +9651,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9652,7 +9678,7 @@ snapshots: '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9660,7 +9686,7 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9668,17 +9694,17 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9711,7 +9737,7 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color @@ -9744,7 +9770,7 @@ snapshots: '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9753,7 +9779,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9913,7 +9939,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) - core-js-compat: 3.45.0 + core-js-compat: 3.45.1 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9933,18 +9959,6 @@ snapshots: '@babel/parser': 7.28.3 '@babel/types': 7.28.2 - '@babel/traverse@7.28.0': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.1.0) - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.3': dependencies: '@babel/code-frame': 7.27.1 @@ -9972,16 +9986,16 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/color-helpers@5.0.2': {} + '@csstools/color-helpers@5.1.0': {} '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.2 + '@csstools/color-helpers': 5.1.0 '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -10523,12 +10537,12 @@ snapshots: extend: 3.0.2 google-auth-library: 10.2.1(supports-color@10.1.0) google-gax: 5.0.3(supports-color@10.1.0) - grpc-gcp: 1.0.1(protobufjs@7.5.3) + grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 merge-stream: 2.0.0 p-queue: 6.6.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 retry-request: 8.0.2(supports-color@10.1.0) split-array-stream: 2.0.0 stack-trace: 0.0.10 @@ -10558,20 +10572,20 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@grpc/proto-loader@0.7.15': dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 yargs: 17.7.2 '@grpc/proto-loader@0.8.0': dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.3 + protobufjs: 7.5.4 yargs: 17.7.2 '@hapi/bourne@3.0.0': {} @@ -10589,24 +10603,24 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.1(@types/node@24.2.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 '@inquirer/confirm@5.1.14(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/core@10.1.15(@types/node@24.2.0)': + '@inquirer/core@10.2.0(@types/node@24.2.0)': dependencies: '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) @@ -10615,23 +10629,23 @@ snapshots: mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/editor@4.2.17(@types/node@24.2.0)': + '@inquirer/editor@4.2.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/external-editor': 1.0.1(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/expand@4.0.17(@types/node@24.2.0)': + '@inquirer/expand@4.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 @@ -10644,23 +10658,23 @@ snapshots: '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.1(@types/node@24.2.0)': + '@inquirer/input@4.2.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/number@3.0.17(@types/node@24.2.0)': + '@inquirer/number@3.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/password@4.0.17(@types/node@24.2.0)': + '@inquirer/password@4.0.18(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) ansi-escapes: 4.3.2 optionalDependencies: @@ -10668,58 +10682,58 @@ snapshots: '@inquirer/prompts@7.8.0(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.17(@types/node@24.2.0) - '@inquirer/expand': 4.0.17(@types/node@24.2.0) - '@inquirer/input': 4.2.1(@types/node@24.2.0) - '@inquirer/number': 3.0.17(@types/node@24.2.0) - '@inquirer/password': 4.0.17(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) - '@inquirer/search': 3.1.0(@types/node@24.2.0) - '@inquirer/select': 4.3.1(@types/node@24.2.0) + '@inquirer/editor': 4.2.18(@types/node@24.2.0) + '@inquirer/expand': 4.0.18(@types/node@24.2.0) + '@inquirer/input': 4.2.2(@types/node@24.2.0) + '@inquirer/number': 3.0.18(@types/node@24.2.0) + '@inquirer/password': 4.0.18(@types/node@24.2.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) + '@inquirer/search': 3.1.1(@types/node@24.2.0) + '@inquirer/select': 4.3.2(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 '@inquirer/prompts@7.8.2(@types/node@24.2.0)': dependencies: - '@inquirer/checkbox': 4.2.1(@types/node@24.2.0) + '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.17(@types/node@24.2.0) - '@inquirer/expand': 4.0.17(@types/node@24.2.0) - '@inquirer/input': 4.2.1(@types/node@24.2.0) - '@inquirer/number': 3.0.17(@types/node@24.2.0) - '@inquirer/password': 4.0.17(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) - '@inquirer/search': 3.1.0(@types/node@24.2.0) - '@inquirer/select': 4.3.1(@types/node@24.2.0) + '@inquirer/editor': 4.2.18(@types/node@24.2.0) + '@inquirer/expand': 4.0.18(@types/node@24.2.0) + '@inquirer/input': 4.2.2(@types/node@24.2.0) + '@inquirer/number': 3.0.18(@types/node@24.2.0) + '@inquirer/password': 4.0.18(@types/node@24.2.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) + '@inquirer/search': 3.1.1(@types/node@24.2.0) + '@inquirer/select': 4.3.2(@types/node@24.2.0) optionalDependencies: '@types/node': 24.2.0 - '@inquirer/rawlist@4.1.5(@types/node@24.2.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/search@3.1.0(@types/node@24.2.0)': + '@inquirer/search@3.1.1(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 - '@inquirer/select@4.3.1(@types/node@24.2.0)': + '@inquirer/select@4.3.2(@types/node@24.2.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.2.0) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.2.0) ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.2.0 @@ -10786,19 +10800,20 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.10.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.11.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 1.0.1(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 2.5.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/json-pointer@1.0.1(tslib@2.8.1)': + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': dependencies: + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) tslib: 2.8.1 @@ -10846,7 +10861,7 @@ snapshots: cors: 2.8.5 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.3 + eventsource-parser: 3.0.5 express: 5.1.0 express-rate-limit: 7.5.1(express@5.1.0) pkce-challenge: 5.0.0 @@ -10874,7 +10889,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.39.5': + '@mswjs/interceptors@0.39.6': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -10883,72 +10898,76 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/nice-android-arm-eabi@1.0.4': + '@napi-rs/nice-android-arm-eabi@1.1.1': optional: true - '@napi-rs/nice-android-arm64@1.0.4': + '@napi-rs/nice-android-arm64@1.1.1': optional: true - '@napi-rs/nice-darwin-arm64@1.0.4': + '@napi-rs/nice-darwin-arm64@1.1.1': optional: true - '@napi-rs/nice-darwin-x64@1.0.4': + '@napi-rs/nice-darwin-x64@1.1.1': optional: true - '@napi-rs/nice-freebsd-x64@1.0.4': + '@napi-rs/nice-freebsd-x64@1.1.1': optional: true - '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': optional: true - '@napi-rs/nice-linux-arm64-gnu@1.0.4': + '@napi-rs/nice-linux-arm64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-arm64-musl@1.0.4': + '@napi-rs/nice-linux-arm64-musl@1.1.1': optional: true - '@napi-rs/nice-linux-ppc64-gnu@1.0.4': + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-riscv64-gnu@1.0.4': + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-s390x-gnu@1.0.4': + '@napi-rs/nice-linux-s390x-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-x64-gnu@1.0.4': + '@napi-rs/nice-linux-x64-gnu@1.1.1': optional: true - '@napi-rs/nice-linux-x64-musl@1.0.4': + '@napi-rs/nice-linux-x64-musl@1.1.1': optional: true - '@napi-rs/nice-win32-arm64-msvc@1.0.4': + '@napi-rs/nice-openharmony-arm64@1.1.1': optional: true - '@napi-rs/nice-win32-ia32-msvc@1.0.4': + '@napi-rs/nice-win32-arm64-msvc@1.1.1': optional: true - '@napi-rs/nice-win32-x64-msvc@1.0.4': + '@napi-rs/nice-win32-ia32-msvc@1.1.1': optional: true - '@napi-rs/nice@1.0.4': + '@napi-rs/nice-win32-x64-msvc@1.1.1': + optional: true + + '@napi-rs/nice@1.1.1': optionalDependencies: - '@napi-rs/nice-android-arm-eabi': 1.0.4 - '@napi-rs/nice-android-arm64': 1.0.4 - '@napi-rs/nice-darwin-arm64': 1.0.4 - '@napi-rs/nice-darwin-x64': 1.0.4 - '@napi-rs/nice-freebsd-x64': 1.0.4 - '@napi-rs/nice-linux-arm-gnueabihf': 1.0.4 - '@napi-rs/nice-linux-arm64-gnu': 1.0.4 - '@napi-rs/nice-linux-arm64-musl': 1.0.4 - '@napi-rs/nice-linux-ppc64-gnu': 1.0.4 - '@napi-rs/nice-linux-riscv64-gnu': 1.0.4 - '@napi-rs/nice-linux-s390x-gnu': 1.0.4 - '@napi-rs/nice-linux-x64-gnu': 1.0.4 - '@napi-rs/nice-linux-x64-musl': 1.0.4 - '@napi-rs/nice-win32-arm64-msvc': 1.0.4 - '@napi-rs/nice-win32-ia32-msvc': 1.0.4 - '@napi-rs/nice-win32-x64-msvc': 1.0.4 + '@napi-rs/nice-android-arm-eabi': 1.1.1 + '@napi-rs/nice-android-arm64': 1.1.1 + '@napi-rs/nice-darwin-arm64': 1.1.1 + '@napi-rs/nice-darwin-x64': 1.1.1 + '@napi-rs/nice-freebsd-x64': 1.1.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 + '@napi-rs/nice-linux-arm64-gnu': 1.1.1 + '@napi-rs/nice-linux-arm64-musl': 1.1.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 + '@napi-rs/nice-linux-s390x-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-musl': 1.1.1 + '@napi-rs/nice-openharmony-arm64': 1.1.1 + '@napi-rs/nice-win32-arm64-msvc': 1.1.1 + '@napi-rs/nice-win32-ia32-msvc': 1.1.1 + '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true '@napi-rs/wasm-runtime@1.0.3': @@ -11023,7 +11042,7 @@ snapshots: '@npmcli/node-gyp': 4.0.0 '@npmcli/package-json': 6.2.0 '@npmcli/promise-spawn': 8.0.2 - node-gyp: 11.3.0 + node-gyp: 11.4.1 proc-log: 5.0.0 which: 5.0.0 transitivePeerDependencies: @@ -11272,7 +11291,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.6': + '@puppeteer/browsers@2.10.7': dependencies: debug: 4.4.1(supports-color@10.1.0) extract-zip: 2.0.1 @@ -11340,7 +11359,7 @@ snapshots: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.17 picomatch: 4.0.3 @@ -11441,7 +11460,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.46.2': + '@rollup/wasm-node@4.48.1': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11486,7 +11505,7 @@ snapshots: '@stylistic/eslint-plugin@5.2.3(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.40.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11519,13 +11538,13 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/babel__code-frame@7.0.6': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -11537,7 +11556,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@types/babel__traverse@7.28.0': @@ -11549,16 +11568,16 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/serve-static': 1.15.8 chokidar: 3.6.0 @@ -11568,11 +11587,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11580,17 +11599,17 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/connect@3.4.38': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/content-disposition@0.5.9': {} '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/convert-source-map@2.0.3': {} @@ -11599,11 +11618,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/cors@2.8.19': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/debounce@1.2.4': {} @@ -11611,7 +11630,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ejs@3.1.5': {} @@ -11631,14 +11650,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -11660,11 +11679,11 @@ snapshots: '@types/git-raw-commits@2.0.0': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/http-assert@1.5.6': {} @@ -11672,7 +11691,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ini@4.1.1': {} @@ -11688,17 +11707,19 @@ snapshots: '@types/jasmine-reporters@2.5.3': dependencies: - '@types/jasmine': 5.1.8 + '@types/jasmine': 5.1.9 '@types/jasmine@5.1.8': {} + '@types/jasmine@5.1.9': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} '@types/karma@6.3.9': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11718,13 +11739,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11741,14 +11762,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 form-data: 4.0.4 - '@types/node-forge@1.3.13': + '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 - '@types/node@22.17.1': + '@types/node@22.17.2': dependencies: undici-types: 6.21.0 @@ -11760,7 +11781,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11768,11 +11789,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11785,12 +11806,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/q@0.0.32': {} @@ -11811,7 +11832,7 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/serve-index@1.9.4': dependencies: @@ -11820,23 +11841,23 @@ snapshots: '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/stack-trace@0.0.33': {} @@ -11853,17 +11874,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11874,11 +11895,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/ws@8.18.1': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 '@types/yargs-parser@21.0.3': {} @@ -11890,7 +11911,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -11924,8 +11945,8 @@ snapshots: '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) + '@typescript-eslint/types': 8.40.0 debug: 4.4.1(supports-color@10.1.0) typescript: 5.9.2 transitivePeerDependencies: @@ -11940,6 +11961,10 @@ snapshots: dependencies: typescript: 5.9.2 + '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.39.1 @@ -11954,6 +11979,8 @@ snapshots: '@typescript-eslint/types@8.39.1': {} + '@typescript-eslint/types@8.40.0': {} + '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: '@typescript-eslint/project-service': 8.39.1(typescript@5.9.2) @@ -12148,16 +12175,16 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.1 + chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12182,7 +12209,7 @@ snapshots: '@vitest/utils@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - loupe: 3.2.0 + loupe: 3.2.1 tinyrainbow: 2.0.0 '@web/browser-logs@0.4.1': @@ -12260,7 +12287,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.16.1(bufferutil@4.0.9) + puppeteer-core: 24.17.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12297,7 +12324,7 @@ snapshots: internal-ip: 6.2.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 log-update: 4.0.0 nanocolors: 0.2.13 nanoid: 3.3.11 @@ -12429,7 +12456,7 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@xmldom/xmldom@0.8.10': {} + '@xmldom/xmldom@0.8.11': {} '@xtuc/ieee754@1.2.0': {} @@ -12551,7 +12578,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.0: {} ansi-styles@2.2.1: {} @@ -12678,8 +12705,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.2 - caniuse-lite: 1.0.30001734 + browserslist: 4.25.3 + caniuse-lite: 1.0.30001737 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12715,7 +12742,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) - core-js-compat: 3.45.0 + core-js-compat: 3.45.1 transitivePeerDependencies: - supports-color @@ -12731,22 +12758,22 @@ snapshots: bare-events@2.6.1: optional: true - bare-fs@4.2.0: + bare-fs@4.2.1: dependencies: bare-events: 2.6.1 bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.6.1) + bare-stream: 2.7.0(bare-events@2.6.1) optional: true - bare-os@3.6.1: + bare-os@3.6.2: optional: true bare-path@3.0.0: dependencies: - bare-os: 3.6.1 + bare-os: 3.6.2 optional: true - bare-stream@2.6.5(bare-events@2.6.1): + bare-stream@2.7.0(bare-events@2.6.1): dependencies: streamx: 2.22.1 optionalDependencies: @@ -12901,7 +12928,7 @@ snapshots: serve-static: 1.16.2 server-destroy: 1.0.1 socket.io: 4.8.1(bufferutil@4.0.9) - ua-parser-js: 1.0.40 + ua-parser-js: 1.0.41 yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -12913,12 +12940,12 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.25.2: + browserslist@4.25.3: dependencies: - caniuse-lite: 1.0.30001734 - electron-to-chromium: 1.5.200 + caniuse-lite: 1.0.30001737 + electron-to-chromium: 1.5.208 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.2) + update-browserslist-db: 1.1.3(browserslist@4.25.3) browserstack@1.6.1: dependencies: @@ -12999,16 +13026,16 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001734: {} + caniuse-lite@1.0.30001737: {} caseless@0.12.0: {} - chai@5.2.1: + chai@5.3.3: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.2.0 + loupe: 3.2.1 pathval: 2.0.1 chalk-template@0.4.0: @@ -13030,6 +13057,8 @@ snapshots: chalk@5.5.0: {} + chalk@5.6.0: {} + chardet@2.1.0: {} check-error@2.1.1: {} @@ -13066,7 +13095,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13075,7 +13104,7 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@7.3.1(devtools-protocol@0.0.1475386): + chromium-bidi@8.0.0(devtools-protocol@0.0.1475386): dependencies: devtools-protocol: 0.0.1475386 mitt: 3.0.1 @@ -13275,9 +13304,9 @@ snapshots: tinyglobby: 0.2.14 webpack: 5.101.2(esbuild@0.25.9) - core-js-compat@3.45.0: + core-js-compat@3.45.1: dependencies: - browserslist: 4.25.2 + browserslist: 4.25.3 core-util-is@1.0.2: {} @@ -13589,7 +13618,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.200: {} + electron-to-chromium@1.5.208: {} emoji-regex@10.4.0: {} @@ -13628,7 +13657,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.17.1 + '@types/node': 22.17.2 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13644,7 +13673,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.2.3 ent@2.2.2: dependencies: @@ -13964,11 +13993,11 @@ snapshots: events@3.3.0: {} - eventsource-parser@3.0.3: {} + eventsource-parser@3.0.5: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.3 + eventsource-parser: 3.0.5 execa@5.1.1: dependencies: @@ -14110,7 +14139,7 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -14429,6 +14458,10 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regex.js@1.0.1(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + glob-to-regexp@0.4.1: {} glob@10.4.5: @@ -14519,8 +14552,8 @@ snapshots: google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 - proto3-json-serializer: 3.0.1 - protobufjs: 7.5.3 + proto3-json-serializer: 3.0.2 + protobufjs: 7.5.4 retry-request: 8.0.2(supports-color@10.1.0) transitivePeerDependencies: - supports-color @@ -14542,10 +14575,10 @@ snapshots: graphql@16.11.0: {} - grpc-gcp@1.0.1(protobufjs@7.5.3): + grpc-gcp@1.0.1(protobufjs@7.5.4): dependencies: '@grpc/grpc-js': 1.13.4 - protobufjs: 7.5.3 + protobufjs: 7.5.4 gtoken@7.1.0(encoding@0.1.13)(supports-color@10.1.0): dependencies: @@ -15076,7 +15109,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -15086,7 +15119,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.0 + '@babel/parser': 7.28.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -15107,7 +15140,7 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -15136,7 +15169,7 @@ snapshots: jasmine-reporters@2.5.2: dependencies: - '@xmldom/xmldom': 0.8.10 + '@xmldom/xmldom': 0.8.11 mkdirp: 1.0.4 jasmine-spec-reporter@7.0.0: @@ -15158,7 +15191,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15311,7 +15344,7 @@ snapshots: istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -15355,7 +15388,7 @@ snapshots: socket.io: 4.8.1(bufferutil@4.0.9) source-map: 0.6.1 tmp: 0.2.5 - ua-parser-js: 0.7.40 + ua-parser-js: 0.7.41 yargs: 16.2.0 transitivePeerDependencies: - bufferutil @@ -15554,7 +15587,7 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.5.0 + chalk: 5.6.0 is-unicode-supported: 1.3.0 log-update@4.0.0: @@ -15584,7 +15617,7 @@ snapshots: long@5.3.2: {} - loupe@3.2.0: {} + loupe@3.2.1: {} lowdb@1.0.0: dependencies: @@ -15610,6 +15643,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.18: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -15646,10 +15683,12 @@ snapshots: media-typer@1.1.0: {} - memfs@4.36.0: + memfs@4.38.1: dependencies: - '@jsonjoy.com/json-pack': 1.10.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + glob-to-regex.js: 1.0.1(tslib@2.8.1) + thingies: 2.5.0(tslib@2.8.1) tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 @@ -15695,7 +15734,7 @@ snapshots: mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)): dependencies: schema-utils: 4.3.2 - tapable: 2.2.2 + tapable: 2.2.3 webpack: 5.101.2(esbuild@0.25.9) minimalistic-assert@1.0.1: {} @@ -15846,10 +15885,10 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) - '@rollup/wasm-node': 4.46.2 + '@rollup/wasm-node': 4.48.1 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.25.2 + browserslist: 4.25.3 chokidar: 4.0.3 commander: 14.0.0 dependency-graph: 1.0.0 @@ -15872,7 +15911,7 @@ snapshots: nock@14.0.8: dependencies: - '@mswjs/interceptors': 0.39.5 + '@mswjs/interceptors': 0.39.6 json-stringify-safe: 5.0.1 propagate: 2.0.1 @@ -15913,7 +15952,7 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@11.3.0: + node-gyp@11.4.1: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.2 @@ -16093,7 +16132,7 @@ snapshots: ora@8.2.0: dependencies: - chalk: 5.5.0 + chalk: 5.6.0 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -16326,7 +16365,7 @@ snapshots: piscina@5.1.3: optionalDependencies: - '@napi-rs/nice': 1.0.4 + '@napi-rs/nice': 1.1.1 pkce-challenge@5.0.0: {} @@ -16422,11 +16461,11 @@ snapshots: propagate@2.0.1: {} - proto3-json-serializer@3.0.1: + proto3-json-serializer@3.0.2: dependencies: - protobufjs: 7.5.3 + protobufjs: 7.5.4 - protobufjs@7.5.3: + protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -16438,7 +16477,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.17.1 + '@types/node': 22.17.2 long: 5.3.2 protractor@7.0.0: @@ -16526,10 +16565,10 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.16.1(bufferutil@4.0.9): + puppeteer-core@24.17.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.6 - chromium-bidi: 7.3.1(devtools-protocol@0.0.1475386) + '@puppeteer/browsers': 2.10.7 + chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) debug: 4.4.1(supports-color@10.1.0) devtools-protocol: 0.0.1475386 typed-query-selector: 2.12.0 @@ -16822,12 +16861,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.17.1)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.17.2)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.17.1 + '@types/node': 22.17.2 rollup@4.46.2: dependencies: @@ -16951,7 +16990,7 @@ snapshots: selfsigned@2.4.1: dependencies: - '@types/node-forge': 1.3.13 + '@types/node-forge': 1.3.14 node-forge: 1.3.1 semver@5.7.2: {} @@ -17433,7 +17472,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.0 strip-bom@3.0.0: {} @@ -17468,7 +17507,7 @@ snapshots: array-back: 6.2.2 wordwrapjs: 5.1.0 - tapable@2.2.2: {} + tapable@2.2.3: {} tar-fs@2.1.1: dependencies: @@ -17482,7 +17521,7 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.2.0 + bare-fs: 4.2.1 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -17581,7 +17620,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 tinypool@1.1.1: {} @@ -17635,14 +17674,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.17.1)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.17.2)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.17.1 + '@types/node': 22.17.2 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17744,9 +17783,9 @@ snapshots: typical@7.3.0: {} - ua-parser-js@0.7.40: {} + ua-parser-js@0.7.41: {} - ua-parser-js@1.0.40: {} + ua-parser-js@1.0.41: {} uglify-js@3.19.3: optional: true @@ -17820,9 +17859,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.2): + update-browserslist-db@1.1.3(browserslist@4.25.3): dependencies: - browserslist: 4.25.2 + browserslist: 4.25.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -17963,7 +18002,24 @@ snapshots: vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: esbuild: 0.25.9 - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 24.2.0 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.4.0 + sass: 1.90.0 + terser: 5.43.1 + yaml: 2.8.1 + + vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + dependencies: + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.46.2 @@ -17981,16 +18037,16 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.1 + chai: 5.3.3 debug: 4.4.1(supports-color@10.1.0) expect-type: 1.2.2 - magic-string: 0.30.17 + magic-string: 0.30.18 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 @@ -17999,7 +18055,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: @@ -18067,7 +18123,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.36.0 + memfs: 4.38.1 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18136,7 +18192,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.25.2 + browserslist: 4.25.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -18149,7 +18205,7 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.2 + tapable: 2.2.3 terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)) watchpack: 2.4.4 webpack-sources: 3.3.3 @@ -18391,7 +18447,7 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: From 2e92159e5719442c2ffa021e7b3ae7a78ef591b7 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 24 Aug 2025 22:05:16 +0000 Subject: [PATCH 052/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 9ecf2dd251db..0c757b704f2b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.2.0") bazel_dep(name = "rules_nodejs", version = "6.5.0") -bazel_dep(name = "aspect_rules_js", version = "2.4.2") +bazel_dep(name = "aspect_rules_js", version = "2.5.0") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") @@ -25,7 +25,7 @@ single_version_override( version = "1.5.3", ) -bazel_dep(name = "aspect_bazel_lib", version = "2.21.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.21.1") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fe427948fd20..0ac4edfcd3be 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,8 +15,8 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/MODULE.bazel": "2fbd1f58ccbbe28749a248bdadea068a6db27eda8be45f8d60668f48e4025437", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.0/source.json": "9ce346023624f8d3b58d31d3ef1bf773f85495187386f6de63fd8aaef744c63e", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/source.json": "cb7d22ce044efa47c6e251107a35b8a919f5cd35254190d825adff1b7ae21e6e", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", @@ -26,13 +26,15 @@ "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299", "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", - "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/source.json": "854a600536a6fa4efae974a19271ae3d86d39705094cc41331724583398bb0b6", + "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/MODULE.bazel": "12bb9ffdfda5b952644ffa75a69fac1e63da788ad445b056d3ccc70ad39825ac", + "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/source.json": "884ab90109fb7b92488d8187dfd8e0b93be105d2e42b06d887ab4730ba7d77da", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/MODULE.bazel": "20f53b145f40957a51077ae90b37b7ce83582a1daf9350349f0f86179e19dd0d", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/source.json": "4d98137d5f74f01e00c6efa8bf591c02718e6c5f31f0bcc73983ea514dd02a12", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "aa975a83e72bcaac62ee61ab12b788ea324a1d05c4aab28aadb202f647881679", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/source.json": "786cbc49377fb6bf4859aec5b1c61f8fc26b08e9fdb929e2dde2e1e2a406bd24", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", @@ -212,7 +214,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "sSVcgtXWHd7osgq50rEZWY2HUmSuNU72/SbhIh5PKsw=", + "bzlTransitiveDigest": "AoqXkS5sPN0j91OWhXohJuxSeCzWZ5ho8DKwAovSGbY=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -357,6 +359,11 @@ "aspect_rules_js", "aspect_rules_js~" ], + [ + "aspect_rules_js~", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" + ], [ "aspect_rules_js~", "bazel_skylib", @@ -387,8 +394,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "aU6dw0RbQaePWr28SJnbI5vd1VoLqJ8DBaheoenhjJ4=", - "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=", + "bzlTransitiveDigest": "bIC8bbQ6eGIpZ/GzkjwoRG18F9dfuNaGunAeuUF0Rg0=", + "usagesDigest": "3AzTJAfe5XVpVUGzpKn2Vey5gSL41A/RWrCJh1bJhHQ=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -603,8 +610,8 @@ }, "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { - "bzlTransitiveDigest": "9U/UW6moiJI22q2ERFWJSK1omQJqmQgMYfWCWNL+SXk=", - "usagesDigest": "6/bgMygODvT9WjYi5vm4e/BEkvhIDHgwWRIhAQhvKts=", + "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", + "usagesDigest": "nut5sNZyApCgI/gzif8dERYFw/f5M+qEHBu7l/fx+qI=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -614,9 +621,9 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.4.2", + "aspect_rules_js": "2.5.0", "aspect_rules_ts": "3.7.0", - "aspect_tools_telemetry": "0.2.6" + "aspect_tools_telemetry": "0.2.8" } } } @@ -1117,7 +1124,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", - "usagesDigest": "BWjTwEVnU6V086ModOVKQp27nvlXPOHb9QWSETnrgR8=", + "usagesDigest": "mjOvYBICjfKKLbI6pc2MjfgO8uk6mk/EuI7ORlwWUGo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 30713178798fb0668c23773f39c8004d85118a33 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 09:49:19 +0000 Subject: [PATCH 053/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 90 +++++--------------------------------------------- 1 file changed, 8 insertions(+), 82 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b609cbeb868..5ce936afbc54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3506,12 +3506,6 @@ packages: peerDependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.40.0': - resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.1': resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6497,9 +6491,6 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -8604,46 +8595,6 @@ packages: yaml: optional: true - vite@7.1.3: - resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -11945,8 +11896,8 @@ snapshots: '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) + '@typescript-eslint/types': 8.39.1 debug: 4.4.1(supports-color@10.1.0) typescript: 5.9.2 transitivePeerDependencies: @@ -11961,10 +11912,6 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': - dependencies: - typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.39.1 @@ -12178,13 +12125,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14095,7 +14042,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15643,10 +15590,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.18: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -18016,28 +17959,11 @@ snapshots: terser: 5.43.1 yaml: 2.8.1 - vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.46.2 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.2.0 - fsevents: 2.3.3 - jiti: 1.21.7 - less: 4.4.0 - sass: 1.90.0 - terser: 5.43.1 - yaml: 2.8.1 - vitest@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18046,7 +17972,7 @@ snapshots: chai: 5.3.3 debug: 4.4.1(supports-color@10.1.0) expect-type: 1.2.2 - magic-string: 0.30.18 + magic-string: 0.30.17 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 @@ -18055,7 +17981,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.3(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: From 5179d8031fe868640e343f60a318ea7dd95243a9 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 15:49:17 +0000 Subject: [PATCH 054/228] ci: Disable PNPM cache on Windows Disabling the PNPM cache resolves an issue where pnpm install is being run inside WSL, causing the action to fail due to missing path. See: https://github.com/angular/dev-infra/pull/2998 --- .github/workflows/ci.yml | 2 ++ .github/workflows/pr.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca2e7cbbe961..101b15b387b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,6 +111,8 @@ jobs: steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + with: + disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b7c5cc8bdba8..ad67c020d27d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -133,6 +133,8 @@ jobs: steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + with: + disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa - name: Setup Bazel RBE From 9a626fd2cc3e5159bcd3dcd9d22ab4348e25a29f Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 25 Aug 2025 16:20:01 +0000 Subject: [PATCH 055/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../windows-bazel-test/action.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 50 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 42 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 16 +++--- package.json | 2 +- pnpm-lock.yaml | 14 +++--- 11 files changed, 72 insertions(+), 70 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index d0a2b890a4ed..31647f3c63ce 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -18,7 +18,7 @@ runs: steps: - name: Initialize WSL id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/setup-wsl@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 57914e9f5b25..303a3814540d 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/branch-manager@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 101b15b387b8..6689c8bbb43c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -110,13 +110,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: allow_windows_rbe: true google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} @@ -140,13 +140,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -165,13 +165,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -185,13 +185,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -221,11 +221,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index ec6a30535f04..d9d3b64757e9 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/pull-request-labeling@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/post-approval-changes@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 7c23648757b1..848b760315b3 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + - uses: angular/dev-infra/github-actions/feature-request@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 163d78aa79b9..ecd35bb70566 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ad67c020d27d..8de9b3ce3d13 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/linting/licenses@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -132,13 +132,13 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d with: allow_windows_rbe: true - name: Run CLI E2E tests @@ -161,13 +161,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -184,12 +184,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@cb03391a53dec7a1d7de8f3b2cd60935e82837fa + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 0c757b704f2b..08b19fd3a590 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "cb03391a53dec7a1d7de8f3b2cd60935e82837fa", + commit = "1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 0ac4edfcd3be..e9ea240ae83a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -41,7 +41,8 @@ "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", - "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/source.json": "dfa5c4b01110313153b484a735764d247fee5624bbab63d25289e43b151a657a", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", @@ -171,7 +172,8 @@ "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", - "https://bcr.bazel.build/modules/tar.bzl/0.5.1/source.json": "deed3094f7cc779ed1d37a68403847b0e38d9dd9d931e03cb90825f3368b515f", + "https://bcr.bazel.build/modules/tar.bzl/0.5.5/MODULE.bazel": "4bfab9bbc7a1966c2c5f7371f5848f5e2d27c465951b4435adc9aaf00ed681da", + "https://bcr.bazel.build/modules/tar.bzl/0.5.5/source.json": "67c322bd9f9a6714b9d55d4df36ddc222976a7fbb2070410ef036f68cdf2eeb7", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", @@ -214,7 +216,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "AoqXkS5sPN0j91OWhXohJuxSeCzWZ5ho8DKwAovSGbY=", + "bzlTransitiveDigest": "D8qNgGrrdZct3S3KMxl6kgSKedwrEWvW34y5AVoV4PQ=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -394,7 +396,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "bIC8bbQ6eGIpZ/GzkjwoRG18F9dfuNaGunAeuUF0Rg0=", + "bzlTransitiveDigest": "0Kn7fvnVxLaVWd5Q+UPHLEIH0A8dYAnRoL8iW6cFIJI=", "usagesDigest": "3AzTJAfe5XVpVUGzpKn2Vey5gSL41A/RWrCJh1bJhHQ=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -534,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "406bdfc8263612d153a8873abbd33e848e42566e4aed75958f66186f3675f7d7", + "@@//package.json": "2f289317adaa135b323d670b0c447d9fade82b3c7e8d289bc1452dd774615a5e", "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -2333,8 +2335,8 @@ }, "@@tar.bzl~//tar:extensions.bzl%toolchains": { "general": { - "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", - "usagesDigest": "I6HvqeURBJAsVftolZUnMjAJqsIpyPsnCw4Sngx2dSg=", + "bzlTransitiveDigest": "x8T4avQwaccwFRDkBObSMray93ZBHwpcjsZTPQOyII0=", + "usagesDigest": "aQJiuhjXhigIjDvDZxsHPfosrrHvNBHV55yj8QdZQgs=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/package.json b/package.json index 58b8a917f2b7..837bf753943c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ce936afbc54..73f92ea63455 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3a48544562fccd5a230f9d93dc50ebfaf4682d35 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35} - version: 0.0.0-cb03391a53dec7a1d7de8f3b2cd60935e82837fa + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a} + version: 0.0.0-1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d hasBin: true '@angular/platform-browser@20.2.1': @@ -9155,7 +9155,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3a48544562fccd5a230f9d93dc50ebfaf4682d35(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) @@ -14042,7 +14042,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.1(supports-color@10.1.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: From 5c76d4cfc5b97312713740a6d02c6f980ee27c32 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Mon, 25 Aug 2025 17:12:28 +0000 Subject: [PATCH 056/228] build: enable strict deps enforcement for ts_project Enable strict_deps testings for all ts_project targets in the repo (cherry picked from commit 8a512cc1e38754c37af8023f2845d1ade6fe0782) --- BUILD.bazel | 14 +++++++++++--- MODULE.bazel | 2 +- packages/angular/ssr/node/BUILD.bazel | 2 -- .../github.com/Microsoft/TypeScript/BUILD.bazel | 10 ++++++---- tools/defaults.bzl | 13 ++++++------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 9518c3a6f0bb..8a65a2d96d22 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -18,11 +18,19 @@ exports_files([ npm_link_all_packages() +rules_js_tsconfig( + name = "tsconfig", + src = "tsconfig.json", + visibility = [ + "//:__pkg__", + ], +) + rules_js_tsconfig( name = "build-tsconfig", src = "tsconfig-build.json", deps = [ - "tsconfig.json", + ":tsconfig", "//:node_modules/@types/node", ], ) @@ -31,7 +39,7 @@ rules_js_tsconfig( name = "test-tsconfig", src = "tsconfig-test.json", deps = [ - "tsconfig.json", + ":tsconfig", "//:node_modules/@types/jasmine", "//:node_modules/@types/node", ], @@ -41,7 +49,7 @@ rules_js_tsconfig( name = "build-tsconfig-esm", src = "tsconfig-build-esm.json", deps = [ - "tsconfig.json", + ":tsconfig", ], ) diff --git a/MODULE.bazel b/MODULE.bazel index 08b19fd3a590..df2bb6d07afd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d", + commit = "acce054082b688da9a5a3d12c6550184eb9f7725", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/packages/angular/ssr/node/BUILD.bazel b/packages/angular/ssr/node/BUILD.bazel index cde993d9c26a..ddd737512f67 100644 --- a/packages/angular/ssr/node/BUILD.bazel +++ b/packages/angular/ssr/node/BUILD.bazel @@ -14,8 +14,6 @@ ts_project( "--types", "node", ], - # TODO: Fix strict_deps failure - ignore_strict_deps = True, source_map = True, tsconfig = "//:build-tsconfig-esm", deps = [ diff --git a/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel b/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel index 6db2a372db4e..b4ac5f975b5a 100644 --- a/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel +++ b/packages/schematics/angular/third_party/github.com/Microsoft/TypeScript/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ts_project") +load("@aspect_rules_js//js:defs.bzl", "js_library") # files fetched on 2025-08-01 @@ -14,8 +14,10 @@ exports_files([ "LICENSE", ]) -ts_project( +js_library( name = "TypeScript", - srcs = ["lib/typescript.d.ts"], - data = ["lib/typescript.js"], + srcs = [ + "lib/typescript.d.ts", + "lib/typescript.js", + ], ) diff --git a/tools/defaults.bzl b/tools/defaults.bzl index cde6f8c43dd6..dc99b2b24e56 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -13,7 +13,6 @@ def ts_project( tsconfig = None, testonly = False, visibility = None, - ignore_strict_deps = False, **kwargs): if tsconfig == None: tsconfig = "//:test-tsconfig" if testonly else "//:build-tsconfig" @@ -28,12 +27,12 @@ def ts_project( **kwargs ) - if not ignore_strict_deps: - strict_deps_test( - name = "%s_strict_deps_test" % name, - srcs = kwargs.get("srcs", []), - deps = deps, - ) + strict_deps_test( + name = "%s_strict_deps_test" % name, + srcs = kwargs.get("srcs", []), + tsconfig = tsconfig, + deps = deps, + ) def npm_package(**kwargs): _npm_package(**kwargs) From ecc0198c226bc523e76a9c969628b319bbbca34f Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 26 Aug 2025 12:44:14 +0000 Subject: [PATCH 057/228] ci: removing WSL for a simpler, more performant approach We've been using a complex workflow with WSL to run our E2E tests on CI. This method, which involves building on Linux and running on Windows, has led to several issues, including: - A complex and cumbersome setup. - Performance overhead due to cross-OS file operations. - Flakiness caused by symlink conversion problems. This change overhauls the E2E test workflow to a much simpler and more stable two-step process: building natively on Linux and running natively on Windows. This new approach significantly simplifies our CI setup by eliminating the dev-infra wsl action and the tricky symlink conversions, leading to better performance and fewer test flakes. (cherry picked from commit d2edcb43b722207f637b764816f02943a78a7ad1) --- .../windows-bazel-test/action.yml | 86 +++-------- .github/workflows/ci.yml | 49 ++++-- .github/workflows/pr.yml | 44 ++++-- scripts/windows-testing/convert-symlinks.mjs | 143 ------------------ 4 files changed, 98 insertions(+), 224 deletions(-) delete mode 100644 scripts/windows-testing/convert-symlinks.mjs diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 31647f3c63ce..29c58eb10167 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -1,10 +1,10 @@ -name: 'Native Windows Bazel e2e test' -description: 'Runs an Angular CLI e2e Bazel test on native Windows (dispatched from inside WSL)' -author: 'Angular' +name: Native Windows Bazel E2E test +description: Runs an Angular CLI e2e Bazel test on native Windows +author: Angular inputs: test_target_name: - description: E2E test target name + description: E2E test target name. required: true test_args: description: | @@ -12,76 +12,38 @@ inputs: should be passed to the e2e test runner. required: false default: '' + e2e_temp_dir: + description: 'The temporary directory path for E2E tests.' + required: false + # Use D:\\ by default as it's much faster + # See: https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows + default: 'D:\\tmp_dir' runs: - using: composite + using: 'composite' steps: - - name: Initialize WSL - id: init_wsl - uses: angular/dev-infra/github-actions/setup-wsl@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))' - - - name: Install node modules in WSL (re-using from previous install/cache restore) - run: | - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - - cd ${{steps.init_wsl.outputs.repo_path}} - pnpm install --frozen-lockfile - shell: wsl-bash {0} - - - name: Build test binary for Windows (inside WSL) - shell: wsl-bash {0} - run: | - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - - cd ${{steps.init_wsl.outputs.repo_path}} - pnpm bazel \ - build --config=e2e //tests/legacy-cli:${{inputs.test_target_name}} --platforms=tools:windows_x64 - env: - # See: https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows - WSLENV: 'GOOGLE_APPLICATION_CREDENTIALS/p' - - - name: Copying binary artifact to host - shell: wsl-bash {0} + - name: Set up temp directory + shell: bash run: | - cd ${{steps.init_wsl.outputs.repo_path}} - tar -cf /tmp/test.tar.gz dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_ - # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 - mkdir /mnt/d/test - mkdir /mnt/d/tmp_dir - mv /tmp/test.tar.gz /mnt/d/test - (cd /mnt/d/test && tar -xf /mnt/d/test/test.tar.gz) + mkdir ${{ inputs.e2e_temp_dir }} - name: Convert symlinks for Windows host - shell: wsl-bash {0} + shell: pwsh run: | - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - - cd ${{steps.init_wsl.outputs.repo_path}} - - runfiles_dir="/mnt/d/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" - - # Make WSL symlinks compatible on Windows native file system. - node scripts/windows-testing/convert-symlinks.mjs $runfiles_dir "${{steps.init_wsl.outputs.cmd_path}}" + $runfiles_dir = "./dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles" # Needed for resolution because Aspect/Bazel looks for repositories at `/external`. # TODO(devversion): consult with Aspect on why this is needed. - (cd $runfiles_dir/_main && ${{steps.init_wsl.outputs.cmd_path}} /C "mklink /D external ..") + Set-Location -Path "${runfiles_dir}\_main" + New-Item -ItemType SymbolicLink -Path "external" -Target ".." - - name: Run tests - # Note: This is Git Bash. + - name: Run CLI E2E tests shell: bash env: BAZEL_BINDIR: '.' - # Use D:/ for better performance see: https://github.com/actions/runner-images/issues/12744 - E2E_TEMP: 'D:\\tmp_dir' - working-directory: "D:\\test" + E2E_TEMP: ${{ inputs.e2e_temp_dir }} run: | - node "${{github.workspace}}\\scripts\\windows-testing\\parallel-executor.mjs" \ - $PWD/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles \ - ${{inputs.test_target_name}} \ - "${{inputs.test_args}}" \ + node ./scripts/windows-testing/parallel-executor.mjs \ + "./dist/bin/tests/legacy-cli/${{ inputs.test_target_name }}_/${{ inputs.test_target_name }}.bat.runfiles" \ + ${{ inputs.test_target_name }} \ + "${{ inputs.test_args }}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6689c8bbb43c..6ed359fc5d83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,7 +99,38 @@ jobs: - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} - e2e_windows: + build-e2e-windows: + runs-on: ubuntu-latest + steps: + - name: Initialize environment + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Setup Bazel + uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Setup Bazel RBE + uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Build E2E tests for Windows on Linux + run: | + pnpm bazel build \ + --config=e2e \ + //tests/legacy-cli:e2e.npm_node22 \ + //tests/legacy-cli:e2e.esbuild_node22 \ + --platforms=tools:windows_x64 + - name: Store built Windows E2E tests + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: win-e2e-build-artifacts + path: | + dist/bin/tests/legacy-cli/** + !**/node_modules/** + retention-days: 1 + if-no-files-found: 'error' + + e2e-windows: + needs: build-e2e-windows strategy: fail-fast: false matrix: @@ -110,16 +141,14 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - disable-package-manager-cache: true - - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Download built Windows E2E tests + uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 with: - allow_windows_rbe: true - google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} + name: win-e2e-build-artifacts + path: dist/bin/tests/legacy-cli/ - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test with: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8de9b3ce3d13..27224d6f238f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -127,27 +127,53 @@ jobs: - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} - e2e-windows-subset: - needs: build - runs-on: windows-2025 + build-e2e-windows-subset: + runs-on: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - with: - disable-package-manager-cache: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Build E2E tests for Windows on Linux + run: | + pnpm bazel build \ + --config=e2e \ + //tests/legacy-cli:e2e.esbuild_node22 \ + --platforms=tools:windows_x64 + - name: Store built Windows E2E tests + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: win-e2e-build-artifacts + path: | + dist/bin/tests/legacy-cli/** + !**/node_modules/** + retention-days: 1 + if-no-files-found: 'error' + + e2e-windows-subset: + needs: build-e2e-windows-subset + runs-on: windows-2025 + steps: + - name: Initialize environment + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + - name: Install node modules + run: pnpm install --frozen-lockfile + - name: Download built Windows E2E tests + uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 with: - allow_windows_rbe: true + name: win-e2e-build-artifacts + path: dist/bin/tests/legacy-cli/ - name: Run CLI E2E tests uses: ./.github/shared-actions/windows-bazel-test + with: + test_target_name: e2e.esbuild_node22 + test_args: --glob "tests/basic/{build,rebuild}.ts" env: E2E_SHARD_TOTAL: 1 - with: - test_target_name: e2e_node22 - test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" e2e-package-managers: needs: build diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs deleted file mode 100644 index f07bbaaeb481..000000000000 --- a/scripts/windows-testing/convert-symlinks.mjs +++ /dev/null @@ -1,143 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -/** - * @fileoverview Script that takes a directory and converts all its Unix symlinks - * to relative Windows-compatible symlinks. This is necessary because when building - * tests via Bazel inside WSL; the output cannot simply be used outside WSL to perform - * native Windows testing. This is a known limitation/bug of the WSL <> Windows interop. - * - * Symlinks are commonly used by Bazel inside the `.runfiles` directory, which is relevant - * for executing tests outside Bazel on the host machine. In addition, `rules_js` heavily - * relies on symlinks for node modules. - * - * Some more details in: - * - https://blog.trailofbits.com/2024/02/12/why-windows-cant-follow-wsl-symlinks/. - * - https://pnpm.io/symlinked-node-modules-structure. - */ - -import childProcess from 'node:child_process'; -import fs from 'node:fs/promises'; -import path from 'node:path'; -import { setTimeout } from 'node:timers/promises'; - -const [rootDir, cmdPath] = process.argv.slice(2); - -const skipDirectories = [ - // Modules that we don't need and would unnecessarily slow-down this. - '_windows_amd64/bin/nodejs/node_modules', -]; - -// Dereferencing can be parallelized and doesn't cause any WSL flakiness (no exe is invoked). -const dereferenceFns = []; -// Re-linking can be parallelized, but should only be in batched. WSL exe is involved and it can be flaky. -// Note: Relinking should not happen during removing & copying of dereference tasks. -const relinkFns = []; - -async function transformDir(p) { - // We explore directories after all files were checked at this level. - const directoriesToVisit = []; - - for (const file of await fs.readdir(p, { withFileTypes: true })) { - const subPath = path.join(p, file.name); - if (skipDirectories.some((d) => subPath.endsWith(d))) { - continue; - } - - if (file.isSymbolicLink()) { - let realTarget = ''; - let linkTarget = ''; - - try { - realTarget = await fs.realpath(subPath); - linkTarget = await fs.readlink(subPath); - } catch (e) { - throw new Error(`Skipping; cannot dereference & read link: ${subPath}: ${e}`); - } - - // Transform relative links but preserve them. - // This is needed for pnpm. - if (!path.isAbsolute(linkTarget)) { - relinkFns.push(async () => { - const wslSubPath = path.relative(rootDir, subPath).replace(/\//g, '\\'); - const linkTargetWindowsPath = linkTarget.replace(/\//g, '\\'); - - await fs.unlink(subPath); - - if ((await fs.stat(realTarget)).isDirectory()) { - // This is a symlink to a directory, create a dir junction. - // Re-create this symlink on the Windows FS using the Windows mklink command. - await exec(`${cmdPath} /c mklink /d "${wslSubPath}" "${linkTargetWindowsPath}"`); - } else { - // This is a symlink to a file, create a file junction. - // Re-create this symlink on the Windows FS using the Windows mklink command. - await exec(`${cmdPath} /c mklink "${wslSubPath}" "${linkTargetWindowsPath}"`); - } - }); - } else { - dereferenceFns.push(async () => { - await fs.unlink(subPath); - // Note: NodeJS `fs.cp` can have issues when sources are readonly. - await exec(`cp -R ${realTarget} ${subPath}`); - }); - } - } else if (file.isDirectory()) { - directoriesToVisit.push(subPath); - } - } - - await Promise.all(directoriesToVisit.map((d) => transformDir(d))); -} - -async function exec(cmd, maxRetries = 5, retryDelay = 100) { - let attempts = 0; - while (attempts <= maxRetries) { - try { - await new Promise((resolve, reject) => { - childProcess.exec(cmd, { cwd: rootDir }, (error) => { - if (error) { - reject(error); - } else { - resolve(); - } - }); - }); - - return; - } catch (error) { - // Windows command spawned within WSL (which is untypical) seem to be flaky. - // This logic tries to make it fully stable by re-trying if this surfaces: - // See: https://github.com/microsoft/WSL/issues/8677. - if (attempts < maxRetries && error.stderr?.includes('accept4 failed 110')) { - // Add a delay before the next attempt - await setTimeout(retryDelay); - attempts++; - } else { - throw error; - } - } - } -} - -try { - await transformDir(rootDir); - - // Dereference first. - await Promise.all(dereferenceFns.map((fn) => fn())); - - // Re-link symlinks to work inside Windows. - // This is done in batches to avoid flakiness due to WSL - // See: https://github.com/microsoft/WSL/issues/8677. - const batchSize = 50; - for (let i = 0; i < relinkFns.length; i += batchSize) { - await Promise.all(relinkFns.slice(i, i + batchSize).map((fn) => fn())); - } -} catch (err) { - console.error('Could not convert symlinks:', err); - process.exitCode = 1; -} From 5d6dd44259a0d89098c2a0c784e726b43ce32316 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:10:30 +0000 Subject: [PATCH 058/228] fix(@schematics/angular): prevent AI config schematic from failing when 'none' and other AI tools are selected When using 'ng new' with the interactive AI tool prompt, the 'none' option remains selected even after a user selects another tool. This results in a validation error because the schematic receives an array with both 'none' and the selected tool. This fix filters out the 'none' value from the `tool` option if any other tool is also present, allowing the schematic to proceed. Closes: #30987 (cherry picked from commit 0f86cf8782d1c08d11bb9ee54a30fe1954dd8bcc) --- .../transformers/replace_resources_spec.ts | 2 +- .../schematics/angular/ai-config/index.ts | 37 +++++++++---------- .../angular/ai-config/index_spec.ts | 9 +++-- .../schematics/angular/ai-config/schema.json | 18 +-------- .../schematics/angular/ng-new/index_spec.ts | 2 +- 5 files changed, 25 insertions(+), 43 deletions(-) diff --git a/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts b/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts index e4c905f86430..102d6e1e0879 100644 --- a/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts +++ b/packages/ngtools/webpack/src/transformers/replace_resources_spec.ts @@ -105,7 +105,7 @@ describe('@ngtools/webpack transformers', () => { expect(tags.oneLine`${result}`).toEqual(tags.oneLine`${output}`); }); - it('should should support svg as templates', () => { + it('should support svg as templates', () => { const input = tags.stripIndent` import { Component } from '@angular/core'; diff --git a/packages/schematics/angular/ai-config/index.ts b/packages/schematics/angular/ai-config/index.ts index 6790bc4a1c1d..4d234b35e5d4 100644 --- a/packages/schematics/angular/ai-config/index.ts +++ b/packages/schematics/angular/ai-config/index.ts @@ -19,9 +19,7 @@ import { } from '@angular-devkit/schematics'; import { Schema as ConfigOptions, Tool } from './schema'; -type ToolWithoutNone = Exclude; - -const AI_TOOLS: { [key in ToolWithoutNone]: ContextFileInfo } = { +const AI_TOOLS: { [key in Exclude]: ContextFileInfo } = { gemini: { rulesName: 'GEMINI.md', directory: '.gemini', @@ -57,26 +55,25 @@ interface ContextFileInfo { } export default function ({ tool }: ConfigOptions): Rule { - if (!tool || tool.includes(Tool.None)) { + if (!tool) { return noop(); } - const files: ContextFileInfo[] = (tool as ToolWithoutNone[]).map( - (selectedTool) => AI_TOOLS[selectedTool], - ); - - const rules = files.map(({ rulesName, directory, frontmatter }) => - mergeWith( - apply(url('./files'), [ - applyTemplates({ - ...strings, - rulesName, - frontmatter, - }), - move(directory), - ]), - ), - ); + const rules = tool + .filter((tool) => tool !== Tool.None) + .map((selectedTool) => AI_TOOLS[selectedTool]) + .map(({ rulesName, directory, frontmatter }) => + mergeWith( + apply(url('./files'), [ + applyTemplates({ + ...strings, + rulesName, + frontmatter, + }), + move(directory), + ]), + ), + ); return chain(rules); } diff --git a/packages/schematics/angular/ai-config/index_spec.ts b/packages/schematics/angular/ai-config/index_spec.ts index 45518f7d17d6..d21186be408a 100644 --- a/packages/schematics/angular/ai-config/index_spec.ts +++ b/packages/schematics/angular/ai-config/index_spec.ts @@ -72,13 +72,14 @@ describe('Ai Config Schematic', () => { expect(tree.exists('.cursor/rules/cursor.mdc')).toBeTruthy(); }); - it('should error is None is associated with other values', () => { - return expectAsync(runConfigSchematic([ConfigTool.None, ConfigTool.Cursor])).toBeRejected(); - }); - it('should not create any files if None is selected', async () => { const filesCount = workspaceTree.files.length; const tree = await runConfigSchematic([ConfigTool.None]); expect(tree.files.length).toBe(filesCount); }); + + it('should create for tool if None and Gemini are selected', async () => { + const tree = await runConfigSchematic([ConfigTool.Gemini, ConfigTool.None]); + expect(tree.exists('.gemini/GEMINI.md')).toBeTruthy(); + }); }); diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json index 8595f9f7c558..3f46fbc6dede 100644 --- a/packages/schematics/angular/ai-config/schema.json +++ b/packages/schematics/angular/ai-config/schema.json @@ -9,7 +9,7 @@ "tool": { "type": "array", "uniqueItems": true, - "default": "none", + "default": ["none"], "x-prompt": { "message": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai", "type": "list", @@ -50,21 +50,5 @@ "enum": ["none", "gemini", "copilot", "claude", "cursor", "jetbrains", "windsurf"] } } - }, - "if": { - "properties": { - "tool": { - "contains": { - "const": "none" - } - } - } - }, - "then": { - "properties": { - "tool": { - "maxItems": 1 - } - } } } diff --git a/packages/schematics/angular/ng-new/index_spec.ts b/packages/schematics/angular/ng-new/index_spec.ts index 0b0334ba3432..0d202bffa590 100644 --- a/packages/schematics/angular/ng-new/index_spec.ts +++ b/packages/schematics/angular/ng-new/index_spec.ts @@ -58,7 +58,7 @@ describe('Ng New Schematic', () => { ); }); - it('should should set the prefix in angular.json and in app.ts', async () => { + it('should set the prefix in angular.json and in app.ts', async () => { const options = { ...defaultOptions, prefix: 'pre' }; const tree = await schematicRunner.runSchematic('ng-new', options); From 3b693e09e8148ef22031aab8f6bc70c928aabc03 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:31:47 +0000 Subject: [PATCH 059/228] fix(@angular/cli): correctly set default array values Previously, default array values were being incorrectly treated as strings. (cherry picked from commit 47d77a3edea4dabb463d50c2bdba32475257d775) --- .../src/command-builder/schematics-command-module.ts | 11 +++++++++-- .../cli/src/command-builder/utilities/json-schema.ts | 8 ++++++-- .../src/command-builder/utilities/json-schema_spec.ts | 4 ++-- .../browser/specs/unused-files-warning_spec.ts | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/angular/cli/src/command-builder/schematics-command-module.ts b/packages/angular/cli/src/command-builder/schematics-command-module.ts index 529d47b078f1..ef317700d1a6 100644 --- a/packages/angular/cli/src/command-builder/schematics-command-module.ts +++ b/packages/angular/cli/src/command-builder/schematics-command-module.ts @@ -204,13 +204,20 @@ export abstract class SchematicsCommandModule ? { name: item, value: item, - checked: item === definition.default, + checked: + definition.multiselect && Array.isArray(definition.default) + ? definition.default?.includes(item) + : item === definition.default, } : { ...item, name: item.label, value: item.value, - checked: item.value === definition.default, + checked: + definition.multiselect && Array.isArray(definition.default) + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + definition.default?.includes(item.value as any) + : item.value === definition.default, }, ), }); diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index 90c619dc024e..869cab6abe4d 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -197,15 +197,19 @@ export async function parseJsonSchemaToOptions( .filter((value) => isValidTypeForEnum(typeof value)) .sort() as (string | true | number)[]; - let defaultValue: string | number | boolean | undefined = undefined; + let defaultValue: string | number | boolean | unknown[] | undefined = undefined; if (current.default !== undefined) { switch (types[0]) { case 'string': - case 'array': if (typeof current.default == 'string') { defaultValue = current.default; } break; + case 'array': + if (Array.isArray(current.default)) { + defaultValue = current.default; + } + break; case 'number': if (typeof current.default == 'number') { defaultValue = current.default; diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts index cc86cc99dddc..ea7043339d65 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts @@ -37,7 +37,7 @@ describe('parseJsonSchemaToOptions', () => { }, 'arrayWithChoices': { 'type': 'array', - 'default': 'default-array', + 'default': ['default-array'], 'items': { 'type': 'string', 'enum': ['always', 'never', 'default-array'], @@ -91,7 +91,7 @@ describe('parseJsonSchemaToOptions', () => { }); it('should add default value to help', async () => { - expect(await localYargs.getHelp()).toContain('[default: "default-array"]'); + expect(await localYargs.getHelp()).toContain('[default: ["default-array"]]'); }); }); diff --git a/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts b/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts index 6e08bedfb5b6..b25d599f18a4 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser/specs/unused-files-warning_spec.ts @@ -238,7 +238,7 @@ describe('Browser Builder unused files warnings', () => { host.appendToFile('src/main.ts', ''); break; case 2: - // The second should should have type.ts as unused but shouldn't warn. + // The second should have type.ts as unused but shouldn't warn. expect(logs.join().includes(warningMessageSuffix)).toBe( false, `Case ${buildNumber} failed.`, From e93919dea7df55a3aac2fa5c93c4560c50a2d749 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:32:10 +0000 Subject: [PATCH 060/228] fix(@angular-devkit/schematics-cli): correctly set default array values Previously, default array values were being incorrectly treated as strings. (cherry picked from commit aed26c38803a465842ff128c3f81bd6984e1fe3d) --- .../schematics_cli/bin/schematics.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/schematics_cli/bin/schematics.ts b/packages/angular_devkit/schematics_cli/bin/schematics.ts index 2c71e0698ad4..8e9779728a77 100644 --- a/packages/angular_devkit/schematics_cli/bin/schematics.ts +++ b/packages/angular_devkit/schematics_cli/bin/schematics.ts @@ -93,7 +93,6 @@ function _createPromptProvider(): schema.PromptProvider { definition.multiselect ? prompts.checkbox : prompts.select )({ message: definition.message, - default: definition.default, validate: (values) => { if (!definition.validator) { return true; @@ -101,15 +100,26 @@ function _createPromptProvider(): schema.PromptProvider { return definition.validator(Object.values(values).map(({ value }) => value)); }, - choices: definition.items.map((item) => + default: definition.multiselect ? undefined : definition.default, + choices: definition.items?.map((item) => typeof item == 'string' ? { name: item, value: item, + checked: + definition.multiselect && Array.isArray(definition.default) + ? definition.default?.includes(item) + : item === definition.default, } : { + ...item, name: item.label, value: item.value, + checked: + definition.multiselect && Array.isArray(definition.default) + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + definition.default?.includes(item.value as any) + : item.value === definition.default, }, ), }); From c114d27638bdc57e7194da47198a08c923939f65 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 26 Aug 2025 15:38:18 +0000 Subject: [PATCH 061/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- MODULE.bazel.lock | 4 +- package.json | 2 +- pnpm-lock.yaml | 717 +++++++++--------- 10 files changed, 420 insertions(+), 415 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 303a3814540d..36471add54a7 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/branch-manager@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ed359fc5d83..0b84280109ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -103,11 +103,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -141,7 +141,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -169,13 +169,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -194,13 +194,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -214,13 +214,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -250,11 +250,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d9d3b64757e9..6549bca8f21f 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/pull-request-labeling@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/post-approval-changes@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 848b760315b3..3e1658563b1f 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + - uses: angular/dev-infra/github-actions/feature-request@fc71b572acb06a4830ef5566edb05500f822b7ad with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ecd35bb70566..d3134e87e6e2 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 27224d6f238f..a7b1c83aa887 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/linting/licenses@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -131,11 +131,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Build E2E tests for Windows on Linux @@ -159,7 +159,7 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@029d16b075db696b35d0d661d0fd3a0552a4b452 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -187,13 +187,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -210,12 +210,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index df2bb6d07afd..fa4db7f993d4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "acce054082b688da9a5a3d12c6550184eb9f7725", + commit = "fc71b572acb06a4830ef5566edb05500f822b7ad", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index e9ea240ae83a..a490a679071f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,8 +536,8 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "2f289317adaa135b323d670b0c447d9fade82b3c7e8d289bc1452dd774615a5e", - "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3", + "@@//package.json": "08c1e51a7b71f9802961664d04ec4d7eacfc347450547e39ff25ceabc765e26c", + "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, "recordedDirentsInputs": {}, diff --git a/package.json b/package.json index 837bf753943c..01a8216a440c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73f92ea63455..533b29c47dd7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.0 version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6872491d510e9e92ea02a2041af71bed6000b87a - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.2.0) + version: 5.1.14(@types/node@24.3.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -378,7 +378,7 @@ importers: version: 0.25.9 https-proxy-agent: specifier: 7.0.6 - version: 7.0.6(supports-color@10.1.0) + version: 7.0.6(supports-color@10.2.0) istanbul-lib-instrument: specifier: 6.0.3 version: 6.0.3 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.2 - version: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.2.0) + version: 7.8.2(@types/node@24.3.0) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.2.0) + version: 7.8.2(@types/node@24.3.0) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1051,9 +1051,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a} - version: 0.0.0-1ef1e98c528b9e9d0d636d1d768b6ebca195ce5d + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1} + version: 0.0.0-fc71b572acb06a4830ef5566edb05500f822b7ad hasBin: true '@angular/platform-browser@20.2.1': @@ -1870,8 +1870,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@firebase/ai@2.0.0': - resolution: {integrity: sha512-N/aSHjqOpU+KkYU3piMkbcuxzvqsOvxflLUXBAkYAPAz8wjE2Ye3BQDgKHEYuhMmEWqj6LFgEBUN8wwc6dfMTw==} + '@firebase/ai@2.1.0': + resolution: {integrity: sha512-4HvFr4YIzNFh0MowJLahOjJDezYSTjQar0XYVu/sAycoxQ+kBsfXuTPRLVXCYfMR5oNwQgYe4Q2gAOYKKqsOyA==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -1908,15 +1908,15 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/app-compat@0.5.0': - resolution: {integrity: sha512-nUnNpOeRj0KZzVzHsyuyrmZKKHfykZ8mn40FtG28DeSTWeM5b/2P242Va4bmQpJsy5y32vfv50+jvdckrpzy7Q==} + '@firebase/app-compat@0.5.1': + resolution: {integrity: sha512-BEy1L6Ufd85ZSP79HDIv0//T9p7d5Bepwy+2mKYkgdXBGKTbFm2e2KxyF1nq4zSQ6RRBxWi0IY0zFVmoBTZlUA==} engines: {node: '>=20.0.0'} '@firebase/app-types@0.9.3': resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - '@firebase/app@0.14.0': - resolution: {integrity: sha512-APIAeKvRNFWKJLjIL8wLDjh7u8g6ZjaeVmItyqSjCdEkJj14UuVlus74D8ofsOMWh45HEwxwkd96GYbi+CImEg==} + '@firebase/app@0.14.1': + resolution: {integrity: sha512-jxTrDbxnGoX7cGz7aP9E7v9iKvBbQfZ8Gz4TH3SfrrkcyIojJM3+hJnlbGnGxHrABts844AxRcg00arMZEyA6Q==} engines: {node: '>=20.0.0'} '@firebase/auth-compat@0.6.0': @@ -2029,16 +2029,16 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/performance-compat@0.2.21': - resolution: {integrity: sha512-OQfYRsIQiEf9ez1SOMLb5TRevBHNIyA2x1GI1H10lZ432W96AK5r4LTM+SNApg84dxOuHt6RWSQWY7TPWffKXg==} + '@firebase/performance-compat@0.2.22': + resolution: {integrity: sha512-xLKxaSAl/FVi10wDX/CHIYEUP13jXUjinL+UaNXT9ByIvxII5Ne5150mx6IgM8G6Q3V+sPiw9C8/kygkyHUVxg==} peerDependencies: '@firebase/app-compat': 0.x '@firebase/performance-types@0.2.3': resolution: {integrity: sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==} - '@firebase/performance@0.7.8': - resolution: {integrity: sha512-k6xfNM/CdTl4RaV4gT/lH53NU+wP33JiN0pUeNBzGVNvfXZ3HbCkoISE3M/XaiOwHgded1l6XfLHa4zHgm0Wyg==} + '@firebase/performance@0.7.9': + resolution: {integrity: sha512-UzybENl1EdM2I1sjYm74xGt/0JzRnU/0VmfMAKo2LSpHJzaj77FCLZXmYQ4oOuE+Pxtt8Wy2BVJEENiZkaZAzQ==} peerDependencies: '@firebase/app': 0.x @@ -2111,8 +2111,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.13.0': - resolution: {integrity: sha512-BxilXzE8cJ0zt5/lXk6KwuBcIT9P2Lbi2WXhwWMbxf1RNeC68/8DmYQqMrzQP333CieRMdbDXs0eNCphLoScWg==} + '@google/genai@1.15.0': + resolution: {integrity: sha512-4CSW+hRTESWl3xVtde7pkQ3E+dDFhDq+m4ztmccRctZfx1gKy3v0M9STIMGk6Nq0s6O2uKMXupOZQ1JGorXVwQ==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.0 @@ -2179,6 +2179,15 @@ packages: '@types/node': optional: true + '@inquirer/confirm@5.1.16': + resolution: {integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/core@10.2.0': resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} engines: {node: '>=18'} @@ -2246,8 +2255,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.0': - resolution: {integrity: sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==} + '@inquirer/prompts@7.8.2': + resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2255,8 +2264,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.2': - resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} + '@inquirer/prompts@7.8.4': + resolution: {integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3275,8 +3284,8 @@ packages: '@types/folder-hash@4.0.4': resolution: {integrity: sha512-c+PwHm51Dw3fXM8SDK+93PO3oXdk4XNouCCvV67lj4aijRkZz5g67myk+9wqWWnyv3go6q96hT6ywcd3XtoZiQ==} - '@types/git-raw-commits@2.0.0': - resolution: {integrity: sha512-sHXOKjKqu1kQxbxkZiz2s0yx2kc7g20g6tE98LYGq5jQyT9r+GRyTn19NBfPotOlXhGO6oPvYT3tdnPl8MYYyA==} + '@types/git-raw-commits@2.0.4': + resolution: {integrity: sha512-PYmTK156j6TilbwtnO2JErH4TCC1izpgP3kRE3KUX35bjBOD2A+syCGeercqHXBcM6wL+DU0WbJB2Gz8fPR+8A==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -3305,9 +3314,6 @@ packages: '@types/jasmine-reporters@2.5.3': resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==} - '@types/jasmine@5.1.8': - resolution: {integrity: sha512-u7/CnvRdh6AaaIzYjCgUuVbREFgulhX05Qtf6ZtW+aOcjCKKVvKgpkPYJBFTZSHtFBYimzU4zP0V2vrEsq9Wcg==} - '@types/jasmine@5.1.9': resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} @@ -3357,8 +3363,8 @@ packages: '@types/node@22.17.2': resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} - '@types/node@24.2.0': - resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -4276,10 +4282,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.5.0: - resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.0: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -5277,8 +5279,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase@12.0.0: - resolution: {integrity: sha512-KV+OrMJpi2uXlqL2zaCcXb7YuQbY/gMIWT1hf8hKeTW1bSumWaHT5qfmn0WTpHwKQa3QEVOtZR2ta9EchcmYuw==} + firebase@12.1.0: + resolution: {integrity: sha512-oZucxvfWKuAW4eHHRqGKzC43fLiPqPwHYBHPRNsnkgonqYaq0VurYgqgBosRlEulW+TWja/5Tpo2FpUU+QrfEQ==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -6768,8 +6770,8 @@ packages: tailwindcss: optional: true - nock@14.0.8: - resolution: {integrity: sha512-5DCGrkwK1f8kxUvqvzLWb97XuDUY4/t5M3ZcogPfLGvC2wO8wjRQsIDSXj2L6e1J0Dv8xscf9wWSvGnS3OL29Q==} + nock@14.0.10: + resolution: {integrity: sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==} engines: {node: '>=18.20.0 <20 || >=20.12.1'} node-addon-api@6.1.0: @@ -8104,8 +8106,8 @@ packages: stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} - supports-color@10.1.0: - resolution: {integrity: sha512-GBuewsPrhJPftT+fqDa9oI/zc5HNsG9nREqwzoSFDOIqf0NggOZbHQj2TE1P1CDJK8ZogFnlZY9hWoUiur7I/A==} + supports-color@10.2.0: + resolution: {integrity: sha512-5eG9FQjEjDbAlI5+kdpdyPIBMRH4GfTVDGREVupaZHmVoppknhM29b/S9BkQz7cathp85BVgRi/As3Siln7e0Q==} engines: {node: '>=18'} supports-color@2.0.0: @@ -9155,13 +9157,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6872491d510e9e92ea02a2041af71bed6000b87a(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 - '@google-cloud/spanner': 8.0.0(supports-color@10.1.0) - '@google/genai': 1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) + '@google/genai': 1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.4(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) '@octokit/auth-app': 8.0.2 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 @@ -9178,10 +9180,10 @@ snapshots: '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 - '@types/git-raw-commits': 2.0.0 - '@types/jasmine': 5.1.8 + '@types/git-raw-commits': 2.0.4 + '@types/jasmine': 5.1.9 '@types/minimatch': 6.0.0 - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@types/semver': 7.7.0 '@types/supports-color': 10.0.0 '@types/which': 3.0.4 @@ -9189,14 +9191,14 @@ snapshots: '@types/yarnpkg__lockfile': 1.1.9 '@yarnpkg/lockfile': 1.1.0 bufferutil: 4.0.9 - chalk: 5.5.0 + chalk: 5.6.0 cli-progress: 3.12.0 conventional-commits-parser: 5.0.0 ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 - firebase: 12.0.0 - folder-hash: 4.1.1(supports-color@10.1.0) + firebase: 12.1.0 + folder-hash: 4.1.1(supports-color@10.2.0) git-raw-commits: 4.0.0 jasmine: 5.9.0 jasmine-core: 5.9.0 @@ -9204,9 +9206,9 @@ snapshots: jsonc-parser: 3.3.1 minimatch: 10.0.3 multimatch: 7.0.0 - nock: 14.0.8 + nock: 14.0.10 semver: 7.7.2 - supports-color: 10.1.0 + supports-color: 10.2.0 typed-graphqlify: 3.1.6 typescript: 5.9.2 utf-8-validate: 6.0.5 @@ -9278,7 +9280,7 @@ snapshots: '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9330,7 +9332,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -9918,7 +9920,7 @@ snapshots: '@babel/parser': 7.28.3 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -10088,7 +10090,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10102,7 +10104,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -10124,9 +10126,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@firebase/ai@2.0.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/ai@2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/app-check-interop-types': 0.3.3 '@firebase/app-types': 0.9.3 '@firebase/component': 0.7.0 @@ -10134,11 +10136,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/analytics': 0.10.18(@firebase/app@0.14.0) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) '@firebase/analytics-types': 0.8.3 - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10147,20 +10149,20 @@ snapshots: '@firebase/analytics-types@0.8.3': {} - '@firebase/analytics@0.10.18(@firebase/app@0.14.0)': + '@firebase/analytics@0.10.18(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-check': 0.11.0(@firebase/app@0.14.0) + '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) '@firebase/app-check-types': 0.5.3 - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10172,17 +10174,17 @@ snapshots: '@firebase/app-check-types@0.5.3': {} - '@firebase/app-check@0.11.0(@firebase/app@0.14.0)': + '@firebase/app-check@0.11.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-compat@0.5.0': + '@firebase/app-compat@0.5.1': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10190,7 +10192,7 @@ snapshots: '@firebase/app-types@0.9.3': {} - '@firebase/app@0.14.0': + '@firebase/app@0.14.1': dependencies: '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10198,10 +10200,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 - '@firebase/auth': 1.11.0(@firebase/app@0.14.0) + '@firebase/app-compat': 0.5.1 + '@firebase/auth': 1.11.0(@firebase/app@0.14.1) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 @@ -10218,9 +10220,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/auth@1.11.0(@firebase/app@0.14.0)': + '@firebase/auth@1.11.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10231,9 +10233,9 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/data-connect@0.3.11(@firebase/app@0.14.0)': + '@firebase/data-connect@0.3.11(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10264,11 +10266,11 @@ snapshots: faye-websocket: 0.11.4 tslib: 2.8.1 - '@firebase/firestore-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/firestore-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.0) + '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10281,9 +10283,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/firestore@4.9.0(@firebase/app@0.14.0)': + '@firebase/firestore@4.9.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10292,11 +10294,11 @@ snapshots: '@grpc/proto-loader': 0.7.15 tslib: 2.8.1 - '@firebase/functions-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/functions-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/functions': 0.13.0(@firebase/app@0.14.0) + '@firebase/functions': 0.13.0(@firebase/app@0.14.1) '@firebase/functions-types': 0.6.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10305,9 +10307,9 @@ snapshots: '@firebase/functions-types@0.6.3': {} - '@firebase/functions@0.13.0(@firebase/app@0.14.0)': + '@firebase/functions@0.13.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/app-check-interop-types': 0.3.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 @@ -10315,11 +10317,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10331,9 +10333,9 @@ snapshots: dependencies: '@firebase/app-types': 0.9.3 - '@firebase/installations@0.6.19(@firebase/app@0.14.0)': + '@firebase/installations@0.6.19(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 idb: 7.1.1 @@ -10343,11 +10345,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/messaging': 0.12.23(@firebase/app@0.14.0) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: @@ -10355,22 +10357,22 @@ snapshots: '@firebase/messaging-interop-types@0.2.3': {} - '@firebase/messaging@0.12.23(@firebase/app@0.14.0)': + '@firebase/messaging@0.12.23(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/messaging-interop-types': 0.2.3 '@firebase/util': 1.13.0 idb: 7.1.1 tslib: 2.8.1 - '@firebase/performance-compat@0.2.21(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/performance': 0.7.8(@firebase/app@0.14.0) + '@firebase/performance': 0.7.9(@firebase/app@0.14.1) '@firebase/performance-types': 0.2.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10379,22 +10381,22 @@ snapshots: '@firebase/performance-types@0.2.3': {} - '@firebase/performance@0.7.8(@firebase/app@0.14.0)': + '@firebase/performance@0.7.9(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 web-vitals: 4.2.4 - '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0)': + '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.0) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) '@firebase/remote-config-types': 0.4.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10403,20 +10405,20 @@ snapshots: '@firebase/remote-config-types@0.4.0': {} - '@firebase/remote-config@0.6.6(@firebase/app@0.14.0)': + '@firebase/remote-config@0.6.6(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0)': + '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': dependencies: - '@firebase/app-compat': 0.5.0 + '@firebase/app-compat': 0.5.1 '@firebase/component': 0.7.0 - '@firebase/storage': 0.14.0(@firebase/app@0.14.0) + '@firebase/storage': 0.14.0(@firebase/app@0.14.1) '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10429,9 +10431,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/storage@0.14.0(@firebase/app@0.14.0)': + '@firebase/storage@0.14.0(@firebase/app@0.14.1)': dependencies: - '@firebase/app': 0.14.0 + '@firebase/app': 0.14.1 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10444,17 +10446,17 @@ snapshots: '@glideapps/ts-necessities@2.2.3': {} - '@google-cloud/common@6.0.0(supports-color@10.1.0)': + '@google-cloud/common@6.0.0(supports-color@10.2.0)': dependencies: '@google-cloud/projectify': 4.0.0 '@google-cloud/promisify': 4.1.0 arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) html-entities: 2.6.0 - retry-request: 8.0.2(supports-color@10.1.0) - teeny-request: 10.1.0(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) + teeny-request: 10.1.0(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -10468,9 +10470,9 @@ snapshots: '@google-cloud/promisify@5.0.0': {} - '@google-cloud/spanner@8.0.0(supports-color@10.1.0)': + '@google-cloud/spanner@8.0.0(supports-color@10.2.0)': dependencies: - '@google-cloud/common': 6.0.0(supports-color@10.1.0) + '@google-cloud/common': 6.0.0(supports-color@10.2.0) '@google-cloud/precise-date': 5.0.0 '@google-cloud/projectify': 5.0.0 '@google-cloud/promisify': 5.0.0 @@ -10486,26 +10488,26 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.1.0) - google-gax: 5.0.3(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) + google-gax: 5.0.3(supports-color@10.2.0) grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 merge-stream: 2.0.0 p-queue: 6.6.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) split-array-stream: 2.0.0 stack-trace: 0.0.10 stream-events: 1.0.5 - teeny-request: 10.1.0(supports-color@10.1.0) + teeny-request: 10.1.0(supports-color@10.2.0) through2: 4.0.2 transitivePeerDependencies: - supports-color - '@google/genai@1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)': + '@google/genai@1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5)': dependencies: - google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.1.0) + google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.0) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: '@modelcontextprotocol/sdk': 1.17.3 @@ -10554,27 +10556,34 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@24.2.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/confirm@5.1.14(@types/node@24.2.0)': + '@inquirer/confirm@5.1.14(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/core@10.2.0(@types/node@24.2.0)': + '@inquirer/confirm@5.1.16(@types/node@24.3.0)': + dependencies: + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) + optionalDependencies: + '@types/node': 24.3.0 + + '@inquirer/core@10.2.0(@types/node@24.3.0)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -10582,115 +10591,115 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/editor@4.2.18(@types/node@24.2.0)': + '@inquirer/editor@4.2.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/external-editor': 1.0.1(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/external-editor': 1.0.1(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/expand@4.0.18(@types/node@24.2.0)': + '@inquirer/expand@4.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/external-editor@1.0.1(@types/node@24.2.0)': + '@inquirer/external-editor@1.0.1(@types/node@24.3.0)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.2.0)': + '@inquirer/input@4.2.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/number@3.0.18(@types/node@24.2.0)': + '@inquirer/number@3.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/password@4.0.18(@types/node@24.2.0)': + '@inquirer/password@4.0.18(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/prompts@7.8.0(@types/node@24.2.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) - '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.18(@types/node@24.2.0) - '@inquirer/expand': 4.0.18(@types/node@24.2.0) - '@inquirer/input': 4.2.2(@types/node@24.2.0) - '@inquirer/number': 3.0.18(@types/node@24.2.0) - '@inquirer/password': 4.0.18(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) - '@inquirer/search': 3.1.1(@types/node@24.2.0) - '@inquirer/select': 4.3.2(@types/node@24.2.0) + '@types/node': 24.3.0 + + '@inquirer/prompts@7.8.2(@types/node@24.3.0)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) + '@inquirer/confirm': 5.1.14(@types/node@24.3.0) + '@inquirer/editor': 4.2.18(@types/node@24.3.0) + '@inquirer/expand': 4.0.18(@types/node@24.3.0) + '@inquirer/input': 4.2.2(@types/node@24.3.0) + '@inquirer/number': 3.0.18(@types/node@24.3.0) + '@inquirer/password': 4.0.18(@types/node@24.3.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) + '@inquirer/search': 3.1.1(@types/node@24.3.0) + '@inquirer/select': 4.3.2(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/prompts@7.8.2(@types/node@24.2.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.2.0) - '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.18(@types/node@24.2.0) - '@inquirer/expand': 4.0.18(@types/node@24.2.0) - '@inquirer/input': 4.2.2(@types/node@24.2.0) - '@inquirer/number': 3.0.18(@types/node@24.2.0) - '@inquirer/password': 4.0.18(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.2.0) - '@inquirer/search': 3.1.1(@types/node@24.2.0) - '@inquirer/select': 4.3.2(@types/node@24.2.0) + '@types/node': 24.3.0 + + '@inquirer/prompts@7.8.4(@types/node@24.3.0)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) + '@inquirer/confirm': 5.1.16(@types/node@24.3.0) + '@inquirer/editor': 4.2.18(@types/node@24.3.0) + '@inquirer/expand': 4.0.18(@types/node@24.3.0) + '@inquirer/input': 4.2.2(@types/node@24.3.0) + '@inquirer/number': 3.0.18(@types/node@24.3.0) + '@inquirer/password': 4.0.18(@types/node@24.3.0) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) + '@inquirer/search': 3.1.1(@types/node@24.3.0) + '@inquirer/select': 4.3.2(@types/node@24.3.0) optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/rawlist@4.1.6(@types/node@24.2.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/search@3.1.1(@types/node@24.2.0)': + '@inquirer/search@3.1.1(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/select@4.3.2(@types/node@24.2.0)': + '@inquirer/select@4.3.2(@types/node@24.3.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.2.0) + '@inquirer/core': 10.2.0(@types/node@24.3.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 - '@inquirer/type@3.0.8(@types/node@24.2.0)': + '@inquirer/type@3.0.8(@types/node@24.3.0)': optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 '@isaacs/balanced-match@4.0.1': {} @@ -10776,10 +10785,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) + '@inquirer/prompts': 7.8.2(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.0) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -10944,7 +10953,7 @@ snapshots: dependencies: agent-base: 7.1.4 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) lru-cache: 10.4.3 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -11244,7 +11253,7 @@ snapshots: '@puppeteer/browsers@2.10.7': dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -11628,7 +11637,7 @@ snapshots: '@types/folder-hash@4.0.4': {} - '@types/git-raw-commits@2.0.0': + '@types/git-raw-commits@2.0.4': dependencies: '@types/node': 22.17.2 @@ -11660,8 +11669,6 @@ snapshots: dependencies: '@types/jasmine': 5.1.9 - '@types/jasmine@5.1.8': {} - '@types/jasmine@5.1.9': {} '@types/json-schema@7.0.15': {} @@ -11724,7 +11731,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.2.0': + '@types/node@24.3.0': dependencies: undici-types: 7.10.0 @@ -11814,7 +11821,7 @@ snapshots: '@types/supports-color@10.0.0': dependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 '@types/tapable@1.0.12': {} @@ -11888,7 +11895,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) eslint: 9.33.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: @@ -11898,7 +11905,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -11917,7 +11924,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2) - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) eslint: 9.33.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 @@ -11934,7 +11941,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -11966,7 +11973,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/loaders': 8.0.0-next-8.9 '@verdaccio/signature': 8.0.0-next-8.11 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: @@ -11980,7 +11987,7 @@ snapshots: '@verdaccio/config@8.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) js-yaml: 4.1.0 lodash: 4.17.21 minimatch: 7.4.6 @@ -12016,7 +12023,7 @@ snapshots: '@verdaccio/loaders@8.0.0-next-8.9': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -12039,7 +12046,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/logger-prettify': 8.0.0-next-8.3 colorette: 2.0.20 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -12064,7 +12071,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) express: 4.21.2 express-rate-limit: 5.5.1 lodash: 4.17.21 @@ -12079,7 +12086,7 @@ snapshots: dependencies: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color @@ -12090,7 +12097,7 @@ snapshots: dependencies: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) gunzip-maybe: 1.4.2 tar-stream: 3.1.7 transitivePeerDependencies: @@ -12101,7 +12108,7 @@ snapshots: '@verdaccio/url@13.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: @@ -12113,9 +12120,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12125,13 +12132,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12457,9 +12464,9 @@ snapshots: dependencies: es6-promisify: 5.0.0 - agent-base@6.0.2(supports-color@10.1.0): + agent-base@6.0.2(supports-color@10.2.0): dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -12795,7 +12802,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -13002,8 +13009,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.5.0: {} - chalk@5.6.0: {} chardet@2.1.0: {} @@ -13380,17 +13385,17 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@10.1.0): + debug@4.4.0(supports-color@10.2.0): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 - debug@4.4.1(supports-color@10.1.0): + debug@4.4.1(supports-color@10.2.0): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.1.0 + supports-color: 10.2.0 decamelize@1.2.0: {} @@ -13876,7 +13881,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14014,7 +14019,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -14042,7 +14047,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14145,7 +14150,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -14175,35 +14180,35 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase@12.0.0: + firebase@12.1.0: dependencies: - '@firebase/ai': 2.0.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/analytics': 0.10.18(@firebase/app@0.14.0) - '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/app': 0.14.0 - '@firebase/app-check': 0.11.0(@firebase/app@0.14.0) - '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/app-compat': 0.5.0 + '@firebase/ai': 2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) + '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/app': 0.14.1 + '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) + '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/app-compat': 0.5.1 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.0) - '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/data-connect': 0.3.11(@firebase/app@0.14.0) + '@firebase/auth': 1.11.0(@firebase/app@0.14.1) + '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/data-connect': 0.3.11(@firebase/app@0.14.1) '@firebase/database': 1.1.0 '@firebase/database-compat': 2.1.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.0) - '@firebase/firestore-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/functions': 0.13.0(@firebase/app@0.14.0) - '@firebase/functions-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/installations': 0.6.19(@firebase/app@0.14.0) - '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) - '@firebase/messaging': 0.12.23(@firebase/app@0.14.0) - '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/performance': 0.7.8(@firebase/app@0.14.0) - '@firebase/performance-compat': 0.2.21(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.0) - '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.0)(@firebase/app@0.14.0) - '@firebase/storage': 0.14.0(@firebase/app@0.14.0) - '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.0)(@firebase/app-types@0.9.3)(@firebase/app@0.14.0) + '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) + '@firebase/firestore-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/functions': 0.13.0(@firebase/app@0.14.1) + '@firebase/functions-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) + '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/performance': 0.7.9(@firebase/app@0.14.1) + '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) + '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) + '@firebase/storage': 0.14.0(@firebase/app@0.14.1) + '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) '@firebase/util': 1.13.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -14217,16 +14222,16 @@ snapshots: flatted@3.3.3: {} - folder-hash@4.1.1(supports-color@10.1.0): + folder-hash@4.1.1(supports-color@10.2.0): dependencies: - debug: 4.4.0(supports-color@10.1.0) + debug: 4.4.0(supports-color@10.2.0) minimatch: 7.4.6 transitivePeerDependencies: - supports-color follow-redirects@1.15.11(debug@4.4.1): optionalDependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) for-each@0.3.5: dependencies: @@ -14305,10 +14310,10 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1(encoding@0.1.13)(supports-color@10.1.0): + gaxios@6.7.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) uuid: 9.0.1 @@ -14316,26 +14321,26 @@ snapshots: - encoding - supports-color - gaxios@7.1.1(supports-color@10.1.0): + gaxios@7.1.1(supports-color@10.2.0): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) node-fetch: 3.3.2 transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.1.0): + gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) google-logging-utils: 0.0.2 json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@7.0.1(supports-color@10.1.0): + gcp-metadata@7.0.1(supports-color@10.2.0): dependencies: - gaxios: 7.1.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) google-logging-utils: 1.1.1 json-bigint: 1.0.0 transitivePeerDependencies: @@ -14383,7 +14388,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14465,43 +14470,43 @@ snapshots: pify: 2.3.0 pinkie-promise: 2.0.1 - google-auth-library@10.2.1(supports-color@10.1.0): + google-auth-library@10.2.1(supports-color@10.2.0): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.1(supports-color@10.1.0) - gcp-metadata: 7.0.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) + gcp-metadata: 7.0.1(supports-color@10.2.0) google-logging-utils: 1.1.1 - gtoken: 8.0.0(supports-color@10.1.0) + gtoken: 8.0.0(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.1.0): + google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.2.0): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) - gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.1.0) - gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) + gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.2.0) + gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - google-gax@5.0.3(supports-color@10.1.0): + google-gax@5.0.3(supports-color@10.2.0): dependencies: '@grpc/grpc-js': 1.13.4 '@grpc/proto-loader': 0.8.0 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.2.1(supports-color@10.1.0) + google-auth-library: 10.2.1(supports-color@10.2.0) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 proto3-json-serializer: 3.0.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.1.0) + retry-request: 8.0.2(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14527,17 +14532,17 @@ snapshots: '@grpc/grpc-js': 1.13.4 protobufjs: 7.5.4 - gtoken@7.1.0(encoding@0.1.13)(supports-color@10.1.0): + gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.0): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.1.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - gtoken@8.0.0(supports-color@10.1.0): + gtoken@8.0.0(supports-color@10.2.0): dependencies: - gaxios: 7.1.1(supports-color@10.1.0) + gaxios: 7.1.1(supports-color@10.2.0) jws: 4.0.0 transitivePeerDependencies: - supports-color @@ -14659,18 +14664,18 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-agent@5.0.0(supports-color@10.1.0): + http-proxy-agent@5.0.0(supports-color@10.2.0): dependencies: '@tootallnate/once': 2.0.0 - agent-base: 6.0.2(supports-color@10.1.0) - debug: 4.4.1(supports-color@10.1.0) + agent-base: 6.0.2(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -14689,7 +14694,7 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.16 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-proxy: 1.18.1(debug@4.4.1) is-glob: 4.0.3 is-plain-object: 5.0.0 @@ -14728,17 +14733,17 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1(supports-color@10.1.0): + https-proxy-agent@5.0.1(supports-color@10.2.0): dependencies: - agent-base: 6.0.2(supports-color@10.1.0) - debug: 4.4.1(supports-color@10.1.0) + agent-base: 6.0.2(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6(supports-color@10.1.0): + https-proxy-agent@7.0.6(supports-color@10.2.0): dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -15081,7 +15086,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -15163,7 +15168,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.21 parse5: 7.3.0 @@ -15366,7 +15371,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -15386,7 +15391,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -15555,7 +15560,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -15852,7 +15857,7 @@ snapshots: optionalDependencies: rollup: 4.46.2 - nock@14.0.8: + nock@14.0.10: dependencies: '@mswjs/interceptors': 0.39.6 json-stringify-safe: 5.0.1 @@ -16143,10 +16148,10 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) get-uri: 6.0.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) pac-resolver: 7.0.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -16323,7 +16328,7 @@ snapshots: portfinder@1.0.37: dependencies: async: 3.2.6 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -16451,9 +16456,9 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.1.0) + https-proxy-agent: 7.0.6(supports-color@10.2.0) lru-cache: 7.18.3 pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 @@ -16496,7 +16501,7 @@ snapshots: debug: 4.3.4 devtools-protocol: 0.0.1045489 extract-zip: 2.0.1 - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) proxy-from-env: 1.1.0 rimraf: 3.0.2 tar-fs: 2.1.1 @@ -16512,7 +16517,7 @@ snapshots: dependencies: '@puppeteer/browsers': 2.10.7 chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) devtools-protocol: 0.0.1475386 typed-query-selector: 2.12.0 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -16524,7 +16529,7 @@ snapshots: puppeteer@18.2.1(bufferutil@4.0.9)(encoding@0.1.13): dependencies: - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) progress: 2.0.3 proxy-from-env: 1.1.0 puppeteer-core: 18.2.1(bufferutil@4.0.9)(encoding@0.1.13) @@ -16745,10 +16750,10 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - retry-request@8.0.2(supports-color@10.1.0): + retry-request@8.0.2(supports-color@10.2.0): dependencies: extend: 3.0.2 - teeny-request: 10.1.0(supports-color@10.1.0) + teeny-request: 10.1.0(supports-color@10.2.0) transitivePeerDependencies: - supports-color @@ -16839,7 +16844,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -16980,7 +16985,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -17192,7 +17197,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -17253,7 +17258,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -17264,7 +17269,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -17342,7 +17347,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -17429,7 +17434,7 @@ snapshots: stubs@3.0.0: {} - supports-color@10.1.0: {} + supports-color@10.2.0: {} supports-color@2.0.0: {} @@ -17501,10 +17506,10 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - teeny-request@10.1.0(supports-color@10.1.0): + teeny-request@10.1.0(supports-color@10.2.0): dependencies: - http-proxy-agent: 5.0.0(supports-color@10.1.0) - https-proxy-agent: 5.0.1(supports-color@10.1.0) + http-proxy-agent: 5.0.0(supports-color@10.2.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) node-fetch: 3.3.2 stream-events: 1.0.5 transitivePeerDependencies: @@ -17649,7 +17654,7 @@ snapshots: tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -17852,7 +17857,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 express: 4.21.2 - https-proxy-agent: 5.0.1(supports-color@10.1.0) + https-proxy-agent: 5.0.1(supports-color@10.2.0) node-fetch: 2.6.7(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -17871,7 +17876,7 @@ snapshots: '@verdaccio/file-locking': 13.0.0-next-8.4 apache-md5: 1.1.8 bcryptjs: 2.4.3 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: @@ -17899,7 +17904,7 @@ snapshots: clipanion: 4.0.0-rc.4 compression: 1.8.1 cors: 2.8.5 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) envinfo: 7.14.0 express: 4.21.2 handlebars: 4.7.8 @@ -17921,13 +17926,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -17942,7 +17947,7 @@ snapshots: - tsx - yaml - vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -17951,7 +17956,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -17959,18 +17964,18 @@ snapshots: terser: 5.43.1 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.2.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1(supports-color@10.1.0) + debug: 4.4.1(supports-color@10.2.0) expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 @@ -17981,11 +17986,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.2.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.2.0 + '@types/node': 24.3.0 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 24603ba2db81b1bdbeb6bc1cea9f0d94bc970c13 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 26 Aug 2025 17:02:21 +0000 Subject: [PATCH 062/228] build: update actions/download-artifact digest to d3f86a1 See associated pull request for more information. --- .github/workflows/ci.yml | 2 +- .github/workflows/pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b84280109ff..0b1fb967c0eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -145,7 +145,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests - uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: win-e2e-build-artifacts path: dist/bin/tests/legacy-cli/ diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a7b1c83aa887..67885976829a 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -163,7 +163,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests - uses: actions/download-artifact@abefc31eafcfbdf6c5336127c1346fdae79ff41c # v4.3.0 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: win-e2e-build-artifacts path: dist/bin/tests/legacy-cli/ From 4d1cd2ce70a673bd9c3b7436730f7906b18f3ade Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 26 Aug 2025 18:39:43 +0000 Subject: [PATCH 063/228] ci: do not expand glob in shell This ensures that the glob is expanded by the Node.js package as otherwise not all tests will be picked up. (cherry picked from commit 8089643aa0c68287c2161e70ceb54c44ec975122) --- .github/shared-actions/windows-bazel-test/action.yml | 9 +-------- .github/workflows/pr.yml | 2 +- scripts/windows-testing/parallel-executor.mjs | 6 ++++-- tests/legacy-cli/e2e_runner.ts | 4 ++-- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml index 29c58eb10167..5e2ec1777892 100644 --- a/.github/shared-actions/windows-bazel-test/action.yml +++ b/.github/shared-actions/windows-bazel-test/action.yml @@ -6,12 +6,6 @@ inputs: test_target_name: description: E2E test target name. required: true - test_args: - description: | - Text representing the command line arguments that - should be passed to the e2e test runner. - required: false - default: '' e2e_temp_dir: description: 'The temporary directory path for E2E tests.' required: false @@ -45,5 +39,4 @@ runs: run: | node ./scripts/windows-testing/parallel-executor.mjs \ "./dist/bin/tests/legacy-cli/${{ inputs.test_target_name }}_/${{ inputs.test_target_name }}.bat.runfiles" \ - ${{ inputs.test_target_name }} \ - "${{ inputs.test_args }}" + ${{ inputs.test_target_name }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 67885976829a..784c5bb08c06 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -171,9 +171,9 @@ jobs: uses: ./.github/shared-actions/windows-bazel-test with: test_target_name: e2e.esbuild_node22 - test_args: --glob "tests/basic/{build,rebuild}.ts" env: E2E_SHARD_TOTAL: 1 + TESTBRIDGE_TEST_ONLY: tests/basic/{build,rebuild}.ts e2e-package-managers: needs: build diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs index 7a7ec7508929..1f62bf03cca1 100644 --- a/scripts/windows-testing/parallel-executor.mjs +++ b/scripts/windows-testing/parallel-executor.mjs @@ -13,7 +13,7 @@ import { stripVTControlCharacters } from 'node:util'; const initialStatusRegex = /Running (\d+) tests/; async function main() { - const [runfilesDir, targetName, testArgs] = process.argv.slice(2); + const [runfilesDir, targetName, ...testArgs] = process.argv.slice(2); const testEntrypoint = path.resolve(runfilesDir, '../', targetName); const testWorkingDir = path.resolve(runfilesDir, '_main'); const tasks = []; @@ -22,7 +22,7 @@ async function main() { tasks.push( spawnTest( 'bash', - [testEntrypoint, ...testArgs.split(' ').filter((arg) => arg !== '')], + [testEntrypoint, ...testArgs], { cwd: testWorkingDir, env: { @@ -35,6 +35,8 @@ async function main() { BAZEL_BINDIR: '.', // Needed to run the E2E in a different temp path. E2E_TEMP: process.env.E2E_TEMP, + // Using the `--glob` causes a bunch of issues due to path expansion in nested bash scripts. + TESTBRIDGE_TEST_ONLY: process.env.TESTBRIDGE_TEST_ONLY, }, }, (s) => (progress[0] = s), diff --git a/tests/legacy-cli/e2e_runner.ts b/tests/legacy-cli/e2e_runner.ts index 051c1174a624..5d7031f20489 100644 --- a/tests/legacy-cli/e2e_runner.ts +++ b/tests/legacy-cli/e2e_runner.ts @@ -47,7 +47,7 @@ const parsed = parseArgs({ options: { 'debug': { type: 'boolean', default: !!process.env.BUILD_WORKSPACE_DIRECTORY }, 'esbuild': { type: 'boolean' }, - 'glob': { type: 'string', default: process.env.TESTBRIDGE_TEST_ONLY }, + 'glob': { type: 'string', default: 'tests/**/*.js' }, 'ignore': { type: 'string', multiple: true }, 'ng-snapshots': { type: 'boolean' }, 'ng-tag': { type: 'string' }, @@ -130,7 +130,7 @@ function lastLogger() { // Under bazel the compiled file (.js) and types (.d.ts) are available. const SRC_FILE_EXT_RE = /\.js$/; -const testGlob = argv.glob?.replace(/\.ts$/, '.js') || `tests/**/*.js`; +const testGlob = (process.env.TESTBRIDGE_TEST_ONLY ?? argv.glob).replace(/\.ts$/, '.js'); const e2eRoot = path.join(__dirname, 'e2e'); const allSetups = glob.sync(`setup/**/*.js`, { cwd: e2eRoot }).sort(); From b6816b0cbaf1262d7015b9d7f7fb425f53995947 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 26 Aug 2025 20:41:14 -0400 Subject: [PATCH 064/228] fix(@angular/build): ensure karma polyfills reporter factory returns a value The factory function for the `reporter:angular--polyfills` Karma plugin did not return a value, which violates Karma's plugin contract. This could cause Karma to crash when multiple reporters were in use, particularly with tools that use Karma's multi-reporter functionality. This change modifies the factory to return an object with an empty `adapters` array (`{ adapters: [] }`). This satisfies Karma's plugin requirements and ensures compatibility with the multi-reporter, preventing the crash. Fixes #31039 (cherry picked from commit 4b49a207a1de27b82416c6225a59bc10f48bdcbc) --- .../angular/build/src/builders/karma/application_builder.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/angular/build/src/builders/karma/application_builder.ts b/packages/angular/build/src/builders/karma/application_builder.ts index ae238b7239cf..004c46930ff9 100644 --- a/packages/angular/build/src/builders/karma/application_builder.ts +++ b/packages/angular/build/src/builders/karma/application_builder.ts @@ -187,6 +187,9 @@ class AngularPolyfillsPlugin { included: true, watched: false, }); + + // Karma needs a return value for a factory and Karma's multi-reporter expects an `adapters` array + return { adapters: [] }; }, AngularPolyfillsPlugin), ], }; From 06a6ddc102f5dc9018ec982f6e4cf56259cc4b52 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 22 Jul 2025 17:15:43 -0400 Subject: [PATCH 065/228] fix(@angular/build): correct JS/TS file paths when running under Bazel The compiler plugin now rewrites Bazel file paths if they were resolved outside of the execution root. This behavior is only used if Bazel environment variables are present. (cherry picked from commit 261dbb37cbe01492240c4cedc644663b15a4296a) --- .../tools/esbuild/angular/compiler-plugin.ts | 9 ++++-- .../esbuild/angular/rewrite-bazel-paths.ts | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts diff --git a/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts b/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts index f56e6c6c3119..78b395058516 100644 --- a/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts +++ b/packages/angular/build/src/tools/esbuild/angular/compiler-plugin.ts @@ -29,6 +29,7 @@ import { SharedTSCompilationState, getSharedCompilationState } from './compilati import { ComponentStylesheetBundler } from './component-stylesheets'; import { FileReferenceTracker } from './file-reference-tracker'; import { setupJitPluginCallbacks } from './jit-plugin-callbacks'; +import { rewriteForBazel } from './rewrite-bazel-paths'; import { SourceFileCache } from './source-file-cache'; export interface CompilerPluginOptions { @@ -411,8 +412,8 @@ export function createCompilerPlugin( }); build.onLoad({ filter: /\.[cm]?[jt]sx?$/ }, async (args) => { - const request = path.normalize( - pluginOptions.fileReplacements?.[path.normalize(args.path)] ?? args.path, + const request = rewriteForBazel( + path.normalize(pluginOptions.fileReplacements?.[path.normalize(args.path)] ?? args.path), ); const isJS = /\.[cm]?js$/.test(request); @@ -478,13 +479,14 @@ export function createCompilerPlugin( return { contents, loader, + resolveDir: path.dirname(request), }; }); build.onLoad( { filter: /\.[cm]?js$/ }, createCachedLoad(pluginOptions.loadResultCache, async (args) => { - let request = args.path; + let request = rewriteForBazel(args.path); if (pluginOptions.fileReplacements) { const replacement = pluginOptions.fileReplacements[path.normalize(args.path)]; if (replacement) { @@ -505,6 +507,7 @@ export function createCompilerPlugin( return { contents, loader: 'js', + resolveDir: path.dirname(request), watchFiles: request !== args.path ? [request] : undefined, }; }, diff --git a/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts b/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts new file mode 100644 index 000000000000..8a6fb6aa82a4 --- /dev/null +++ b/packages/angular/build/src/tools/esbuild/angular/rewrite-bazel-paths.ts @@ -0,0 +1,30 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { join, relative } from 'node:path'; + +const bazelBinDirectory = process.env['BAZEL_BINDIR']; +const bazelExecRoot = process.env['JS_BINARY__EXECROOT']; + +export function rewriteForBazel(path: string): string { + if (!bazelBinDirectory || !bazelExecRoot) { + return path; + } + + const fromExecRoot = relative(bazelExecRoot, path); + if (!fromExecRoot.startsWith('..')) { + return path; + } + + const fromBinDirectory = relative(bazelBinDirectory, path); + if (fromBinDirectory.startsWith('..')) { + return path; + } + + return join(bazelExecRoot, fromBinDirectory); +} From ce323c66d893f9beb53b227d2780ff2941f53140 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 27 Aug 2025 17:37:11 +0000 Subject: [PATCH 066/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 6 +-- pnpm-lock.yaml | 44 ++++++++-------- 10 files changed, 82 insertions(+), 82 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 36471add54a7..98205807bde2 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/branch-manager@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b1fb967c0eb..d624023053cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Generate JSON schema types @@ -44,11 +44,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -87,13 +87,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -103,11 +103,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -141,7 +141,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -169,13 +169,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -194,13 +194,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run CLI E2E tests @@ -214,13 +214,13 @@ jobs: SAUCE_TUNNEL_IDENTIFIER: angular-cli-${{ github.workflow }}-${{ github.run_number }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Run E2E Browser tests @@ -250,11 +250,11 @@ jobs: CIRCLE_BRANCH: ${{ github.ref_name }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 6549bca8f21f..d122eb64ec45 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/pull-request-labeling@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/post-approval-changes@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 3e1658563b1f..8217106464a2 100644 --- a/.github/workflows/feature-requests.yml +++ b/.github/workflows/feature-requests.yml @@ -16,6 +16,6 @@ jobs: if: github.repository == 'angular/angular-cli' runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/feature-request@fc71b572acb06a4830ef5566edb05500f822b7ad + - uses: angular/dev-infra/github-actions/feature-request@b34c3cb148e5cfbd9be5538cdace58b29b215afa with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index d3134e87e6e2..923bfb1aa058 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -23,7 +23,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -38,9 +38,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 784c5bb08c06..51bb1c9787df 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -34,9 +34,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup ESLint Caching uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: @@ -56,7 +56,7 @@ jobs: - name: Run Validation run: pnpm admin validate - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/linting/licenses@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Check tooling setup run: pnpm check-tooling-setup - name: Check commit message @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests @@ -117,13 +117,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -131,11 +131,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Build E2E tests for Windows on Linux @@ -159,7 +159,7 @@ jobs: runs-on: windows-2025 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Download built Windows E2E tests @@ -187,13 +187,13 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} @@ -210,12 +210,12 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@fc71b572acb06a4830ef5566edb05500f822b7ad + uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index fa4db7f993d4..67dc3a585b41 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "fc71b572acb06a4830ef5566edb05500f822b7ad", + commit = "b34c3cb148e5cfbd9be5538cdace58b29b215afa", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a490a679071f..df2286f9c143 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "08c1e51a7b71f9802961664d04ec4d7eacfc347450547e39ff25ceabc765e26c", + "@@//package.json": "a42a8128e672378cad6de7b8a30922b4ba04e3b45b5243ef94fc09c983d28000", "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index 01a8216a440c..efeeacadc0ea 100644 --- a/package.json +++ b/package.json @@ -47,15 +47,15 @@ "homepage": "https://github.com/angular/angular-cli", "devDependencies": { "@angular/animations": "20.2.1", - "@angular/cdk": "20.2.0", + "@angular/cdk": "20.2.1", "@angular/common": "20.2.1", "@angular/compiler": "20.2.1", "@angular/compiler-cli": "20.2.1", "@angular/core": "20.2.1", "@angular/forms": "20.2.1", "@angular/localize": "20.2.1", - "@angular/material": "20.2.0", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1", + "@angular/material": "20.2.1", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7", "@angular/platform-browser": "20.2.1", "@angular/platform-server": "20.2.1", "@angular/router": "20.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 533b29c47dd7..62920ce5a23e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,8 +23,8 @@ importers: specifier: 20.2.1 version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.0 - version: 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.1 + version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': specifier: 20.2.1 version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) @@ -44,11 +44,11 @@ importers: specifier: 20.2.1 version: 20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1) '@angular/material': - specifier: 20.2.0 - version: 20.2.0(bcb75b43408852e5fcaf27839f79fc2c) + specifier: 20.2.1 + version: 20.2.1(b60312b63259c1568290f1cfc536b3a7) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1dd1369e814daed12d5f3e188b805cbaaab1d3e1 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.2.1 version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -982,8 +982,8 @@ packages: '@angular/common': 20.2.1 '@angular/core': 20.2.1 - '@angular/cdk@20.2.0': - resolution: {integrity: sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==} + '@angular/cdk@20.2.1': + resolution: {integrity: sha512-yEPh5hr9LZW4ey/HxtaGdSBDIkNzziLo0Dr1RP8JcxhOQ2Bzv2PZ+g8jC6aPGD7NPV8FtDf0FhTEzQr+m+gBXQ==} peerDependencies: '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 @@ -1041,19 +1041,19 @@ packages: '@angular/compiler': 20.2.1 '@angular/compiler-cli': 20.2.1 - '@angular/material@20.2.0': - resolution: {integrity: sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==} + '@angular/material@20.2.1': + resolution: {integrity: sha512-Zv1ay/eSwO9e2xUrPKOQFSKscb0+0bhZmDwy9etQhder0FBh380iizP+PaZnJGGy87zYDmauv0fjKcDfdWCJYA==} peerDependencies: - '@angular/cdk': 20.2.0 + '@angular/cdk': 20.2.1 '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 '@angular/forms': ^20.0.0 || ^21.0.0 '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1} - version: 0.0.0-fc71b572acb06a4830ef5566edb05500f822b7ad + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7} + version: 0.0.0-b34c3cb148e5cfbd9be5538cdace58b29b215afa hasBin: true '@angular/platform-browser@20.2.1': @@ -2628,8 +2628,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@octokit/auth-app@8.0.2': - resolution: {integrity: sha512-dLTmmA9gUlqiAJZgozfOsZFfpN/OldH3xweb7lqSnngax5Rs+PfO5dDlokaBfc41H1xOtsLYV5QqR0DkBAtPmw==} + '@octokit/auth-app@8.1.0': + resolution: {integrity: sha512-6bWhyvLXqCSfHiqlwzn9pScLZ+Qnvh/681GR/UEEPCMIVwfpRDBw0cCzy3/t2Dq8B7W2X/8pBgmw6MOiyE0DXQ==} engines: {node: '>= 20'} '@octokit/auth-oauth-app@9.0.1': @@ -9086,7 +9086,7 @@ snapshots: '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) @@ -9147,9 +9147,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.0(bcb75b43408852e5fcaf27839f79fc2c)': + '@angular/material@20.2.1(b60312b63259c1568290f1cfc536b3a7)': dependencies: - '@angular/cdk': 20.2.0(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/cdk': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) @@ -9157,14 +9157,14 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1dd1369e814daed12d5f3e188b805cbaaab1d3e1(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) '@google/genai': 1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.8.4(@types/node@24.3.0) '@inquirer/type': 3.0.8(@types/node@24.3.0) - '@octokit/auth-app': 8.0.2 + '@octokit/auth-app': 8.1.0 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 '@octokit/graphql-schema': 15.26.0 @@ -11008,7 +11008,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@octokit/auth-app@8.0.2': + '@octokit/auth-app@8.1.0': dependencies: '@octokit/auth-oauth-app': 9.0.1 '@octokit/auth-oauth-user': 6.0.0 From 9d2794328a8ade1aece45e8338d21b9c72a2985f Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 27 Aug 2025 12:37:57 -0700 Subject: [PATCH 067/228] release: cut the v20.2.1 release --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ MODULE.bazel.lock | 2 +- package.json | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0797d1ce29d2..1c56c7a0acaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ + + +# 20.2.1 (2025-08-27) + +### @angular/cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------- | +| [3b693e09e](https://github.com/angular/angular-cli/commit/3b693e09e8148ef22031aab8f6bc70c928aabc03) | fix | correctly set default array values | + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------------ | +| [6937123a3](https://github.com/angular/angular-cli/commit/6937123a393e2ba9221962b0174056c14437a988) | fix | directly resolve karma config template in migration | +| [5d6dd4425](https://github.com/angular/angular-cli/commit/5d6dd44259a0d89098c2a0c784e726b43ce32316) | fix | prevent AI config schematic from failing when 'none' and other AI tools are selected | + +### @angular-devkit/schematics-cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------- | +| [e93919dea](https://github.com/angular/angular-cli/commit/e93919dea7df55a3aac2fa5c93c4560c50a2d749) | fix | correctly set default array values | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------- | +| [06a6ddc10](https://github.com/angular/angular-cli/commit/06a6ddc102f5dc9018ec982f6e4cf56259cc4b52) | fix | correct JS/TS file paths when running under Bazel | +| [b6816b0cb](https://github.com/angular/angular-cli/commit/b6816b0cbaf1262d7015b9d7f7fb425f53995947) | fix | ensure karma polyfills reporter factory returns a value | + + + # 20.2.0 (2025-08-20) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index df2286f9c143..cf853e8982a4 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -536,7 +536,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", "recordedFileInputs": { - "@@//package.json": "a42a8128e672378cad6de7b8a30922b4ba04e3b45b5243ef94fc09c983d28000", + "@@//package.json": "a0b7f44b0f9902af3d62a7f36e01cb8caf7faa85f54c3cec1f0f7e387308c68c", "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, diff --git a/package.json b/package.json index efeeacadc0ea..cf24e14d04b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.0", + "version": "20.2.1", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 391eb32b2a118504a4801e9f790d2a763250b7ae Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 28 Aug 2025 08:05:38 +0000 Subject: [PATCH 068/228] build: define typescript version via string in module.bazel file Within our module.bazel file when describing the version of typescript to use for rules_ts, we use ts_version instead of ts_version_from to prevent our package.json file from being part of the set of files used to calculate the sha for the lock file. Any unrelated change to the version of the typescript file would end up causing our lockfile to be out of date. This amount of churn has proven to be too much for our current setup. We instead now test to validate the versions defined in the package.json and MODULE.bazel files match. --- .github/workflows/ci.yml | 4 +--- .github/workflows/pr.yml | 4 +--- BUILD.bazel | 6 ++++++ MODULE.bazel | 4 ++-- MODULE.bazel.lock | 10 +++------- tools/test/expected_package.json | 6 +++--- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d624023053cd..6c304ccf5962 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,9 +71,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests - run: pnpm bazel test //modules/... //packages/... - env: - ASPECT_RULES_JS_FROZEN_PNPM_LOCK: '1' + run: pnpm bazel test -- //... -//tests/legacy-cli/... e2e: needs: test diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 51bb1c9787df..65306c7cfa4f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -101,9 +101,7 @@ jobs: - name: Install node modules run: pnpm install --frozen-lockfile - name: Run module and package tests - run: pnpm bazel test //modules/... //packages/... - env: - ASPECT_RULES_JS_FROZEN_PNPM_LOCK: '1' + run: pnpm bazel test -- //... -//tests/legacy-cli/... e2e: needs: build diff --git a/BUILD.bazel b/BUILD.bazel index 8a65a2d96d22..99bc6eb0355f 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,5 +1,6 @@ load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") +load("@devinfra//bazel/validation:defs.bzl", "validate_ts_version_matching") load("@npm//:defs.bzl", "npm_link_all_packages") load("//tools:defaults.bzl", "copy_to_bin") @@ -102,3 +103,8 @@ config_setting( ":enable_snapshot_repo_deps": "true", }, ) + +validate_ts_version_matching( + module_lock_file = "MODULE.bazel.lock", + package_json = "package.json", +) diff --git a/MODULE.bazel b/MODULE.bazel index 67dc3a585b41..195224d19aa4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "b34c3cb148e5cfbd9be5538cdace58b29b215afa", + commit = "7e2eefa1375195fa7616f78a76f538a188852067", remote = "https://github.com/angular/dev-infra.git", ) @@ -176,7 +176,7 @@ rules_ts_ext.deps( name = "angular_cli_npm_typescript", # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity' ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - ts_version_from = "//:package.json", + ts_version = "5.9.2", ) use_repo(rules_ts_ext, **{"npm_typescript": "angular_cli_npm_typescript"}) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index cf853e8982a4..c42980fc6aff 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -534,10 +534,8 @@ "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", - "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=", + "usagesDigest": "1QffQgMsAO4zhe8vcwqME94TRDAlQADSJn4p/MOIYv4=", "recordedFileInputs": { - "@@//package.json": "a0b7f44b0f9902af3d62a7f36e01cb8caf7faa85f54c3cec1f0f7e387308c68c", - "@@devinfra~//bazel/package.json": "f90ae656882e652c88b59c7b94880416dc4a90ef01e8763fd04e8c6f8c2bb6e6", "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, "recordedDirentsInputs": {}, @@ -547,8 +545,7 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "version": "", - "version_from": "@@//:package.json", + "version": "5.9.2", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" @@ -570,8 +567,7 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "version": "", - "version_from": "@@devinfra~//bazel:package.json", + "version": "5.9.2", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" diff --git a/tools/test/expected_package.json b/tools/test/expected_package.json index a456312e8903..6630c9062f8a 100644 --- a/tools/test/expected_package.json +++ b/tools/test/expected_package.json @@ -35,8 +35,8 @@ } }, "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "0.0.0-ENGINES-NODE", + "npm": "0.0.0-ENGINES-NPM", + "yarn": "0.0.0-ENGINES-YARN" } } From a793bbc473dfaddf3fe6ed15805dc4fc84f52865 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 28 Aug 2025 12:50:43 +0000 Subject: [PATCH 069/228] fix(@angular/cli): don't set a default for array options when length is 0 This change prevents the CLI from setting a default value for array options that have a length of zero. Previously, this would result in an empty array being added as a default, which isn't the intended behavior. (cherry picked from commit 2c498d2b87c13a63bef2a9be2ca4f087c72c6b8a) --- .../angular/cli/src/command-builder/utilities/json-schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index 869cab6abe4d..0d8b7cc57e98 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -206,7 +206,7 @@ export async function parseJsonSchemaToOptions( } break; case 'array': - if (Array.isArray(current.default)) { + if (Array.isArray(current.default) && current.default.length > 0) { defaultValue = current.default; } break; From 23ebb0fbbf304527b04e8828e6d4d26c730d0ef3 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 28 Aug 2025 16:05:56 +0000 Subject: [PATCH 070/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 24 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 343 ++++++++++-------- 11 files changed, 262 insertions(+), 233 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 98205807bde2..e997a6e5d2c7 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + - uses: angular/dev-infra/github-actions/branch-manager@ae4e34835e566bbcc12bec8f2191b069f307ece2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c304ccf5962..c41fdee5b3dc 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d122eb64ec45..2a8c5069f1d9 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + - uses: angular/dev-infra/github-actions/pull-request-labeling@ae4e34835e566bbcc12bec8f2191b069f307ece2 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + - uses: angular/dev-infra/github-actions/post-approval-changes@ae4e34835e566bbcc12bec8f2191b069f307ece2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 8217106464a2..c1ec327dc37d 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + - uses: angular/dev-infra/github-actions/feature-request@ae4e34835e566bbcc12bec8f2191b069f307ece2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 923bfb1aa058..eb7a99056d3f 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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 65306c7cfa4f..6b3bb7d97ff0 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/linting/licenses@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - 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@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b34c3cb148e5cfbd9be5538cdace58b29b215afa + uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 195224d19aa4..d908da5cbfbb 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "7e2eefa1375195fa7616f78a76f538a188852067", + commit = "ae4e34835e566bbcc12bec8f2191b069f307ece2", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index cf24e14d04b5..7f965bf03210 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.1", + "@angular/animations": "20.2.2", "@angular/cdk": "20.2.1", - "@angular/common": "20.2.1", - "@angular/compiler": "20.2.1", - "@angular/compiler-cli": "20.2.1", - "@angular/core": "20.2.1", - "@angular/forms": "20.2.1", - "@angular/localize": "20.2.1", + "@angular/common": "20.2.2", + "@angular/compiler": "20.2.2", + "@angular/compiler-cli": "20.2.2", + "@angular/core": "20.2.2", + "@angular/forms": "20.2.2", + "@angular/localize": "20.2.2", "@angular/material": "20.2.1", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7", - "@angular/platform-browser": "20.2.1", - "@angular/platform-server": "20.2.1", - "@angular/router": "20.2.1", - "@angular/service-worker": "20.2.1", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#93fe86fed6afb1e19a3edb518b1f09de6f9305b4", + "@angular/platform-browser": "20.2.2", + "@angular/platform-server": "20.2.2", + "@angular/router": "20.2.2", + "@angular/service-worker": "20.2.2", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 839432fe864c..a73829538b0f 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.1", - "@angular/compiler": "20.2.1", - "@angular/core": "20.2.1", - "@angular/platform-browser": "20.2.1", - "@angular/platform-server": "20.2.1", - "@angular/router": "20.2.1", + "@angular/common": "20.2.2", + "@angular/compiler": "20.2.2", + "@angular/core": "20.2.2", + "@angular/platform-browser": "20.2.2", + "@angular/platform-server": "20.2.2", + "@angular/router": "20.2.2", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index ece914ec8df0..3d185e74afef 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.1", - "@angular/compiler-cli": "20.2.1", + "@angular/compiler": "20.2.2", + "@angular/compiler-cli": "20.2.2", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62920ce5a23e..0d04a0866fe5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.2.1 - version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.1 - version: 20.2.1 + specifier: 20.2.2 + version: 20.2.2 '@angular/compiler-cli': - specifier: 20.2.1 - version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) + specifier: 20.2.2 + version: 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) '@angular/core': - specifier: 20.2.1 - version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.2 + version: 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.2.1 - version: 20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1) + specifier: 20.2.2 + version: 20.2.2(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2) '@angular/material': specifier: 20.2.1 - version: 20.2.1(b60312b63259c1568290f1cfc536b3a7) + version: 20.2.1(a32bc00dd6da13143170591662d3798d) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#9d0a73d937f6447d06ef56a5347c805e5d9400d7 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#93fe86fed6afb1e19a3edb518b1f09de6f9305b4 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.2.1 - version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.2 + version: 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.2.1 - version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(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.1 - version: 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.2.1 - version: 20.2.1 + specifier: 20.2.2 + version: 20.2.2 '@angular/core': - specifier: 20.2.1 - version: 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.2 + version: 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.2.1 - version: 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.2.2 + version: 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.2.2 + version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(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.1 - version: 20.2.1 + specifier: 20.2.2 + version: 20.2.2 '@angular/compiler-cli': - specifier: 20.2.1 - version: 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) + specifier: 20.2.2 + version: 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,12 +975,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.1': - resolution: {integrity: sha512-g4yLXwXCF7OAahx1xI4FXRwG4dIXfBqHsvlpx2TappaMRpiPp7PfP2cW6l3ox+KRpTWhSvcRqbJyIOWad0f7Rw==} + '@angular/animations@20.2.2': + resolution: {integrity: sha512-DaTDth1EkwFRPc4sxKr4dj4+uOZur03HBxpD0aRLXqO1USVblCgtRRU8OJ+nNKFJICViXkXT2IVEq/avpt9ijg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.1 - '@angular/core': 20.2.1 + '@angular/common': 20.2.2 + '@angular/core': 20.2.2 '@angular/cdk@20.2.1': resolution: {integrity: sha512-yEPh5hr9LZW4ey/HxtaGdSBDIkNzziLo0Dr1RP8JcxhOQ2Bzv2PZ+g8jC6aPGD7NPV8FtDf0FhTEzQr+m+gBXQ==} @@ -989,33 +989,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.1': - resolution: {integrity: sha512-T6RYnDZA9TyYhj2hUz4set8p4RbBCg6IKUvy6qzdKTl4nn4xQ0XUV7aGBYN4LKiGrse9lzlVUAyXtkhmwuBbCQ==} + '@angular/common@20.2.2': + resolution: {integrity: sha512-8i7cytly2h1sgoaEx3+H7/Xrq2KEBnAi0nDG1URv0esmyeMYJ2kycBXF2EDbnbzBhZAPw7++kTf5jng+bhTsiw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.1 + '@angular/core': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.1': - resolution: {integrity: sha512-VpbcRqNPJvy1L9RDtGGQsQiOrMzxodUWklphbtnh9MrrK6lLuy6Qj2ROiW7vKL9WfLTCXWA24gBAcMAR76dq3Q==} + '@angular/compiler-cli@20.2.2': + resolution: {integrity: sha512-4amAz9/GeYPGBeNGnelxPllQZXG/ttj+t1dwZ7AODXkxipR6P26Vg3Qma90bxsjUmgl5Mfcijy4bUh/isBGi5g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.1 + '@angular/compiler': 20.2.2 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.1': - resolution: {integrity: sha512-ghVt1E8xmwjMwqyGRwXYJkr7fz40VEreUSX1q+gEzbGTftVrK1foxPT8jcueIn0ztArDf7+zSMtu314FiJZyYA==} + '@angular/compiler@20.2.2': + resolution: {integrity: sha512-gHZFSAVVzH/rOvZGglf5AGkk6iQgZXqgFzoThSXe+Do4XIkdeaZPVgc/3AmoHk50gAD85C90eXSjlvp/N1djRg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.1': - resolution: {integrity: sha512-/hl3AkmdQ62P9ttmfULEDg9GIz7BkzhGv9bSH2ssiU3Y4ax6eM8uQXEbMxBA8OUKOvg1Q4POcNHIiJQgO5t28Q==} + '@angular/core@20.2.2': + resolution: {integrity: sha512-FZFVh2pI4mI7rr8tTVfrC2c1yOjgTrZy3BFaLSTArS4TgNxy30fLKQ9w3JkuxfllDSckPLyft/EaKcW1pxgHAw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.1 + '@angular/compiler': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,22 +1024,22 @@ packages: zone.js: optional: true - '@angular/forms@20.2.1': - resolution: {integrity: sha512-SfkiHEIFPLtTKeaXUTpRfYnpJDxaeKiTi0YqfvzEjKE68qH0t+pQ4rL0Poch2/l4snP6JS1XzO/nDve1dk3vZw==} + '@angular/forms@20.2.2': + resolution: {integrity: sha512-61xMJfKql9F2q+8bm+AlIPy36ETyYuBIxGwP7q/w5Rjv+GlfXVVddq4DI2RiaK/MwgYljtuwf1+aoXz4dlNriw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.1 - '@angular/core': 20.2.1 - '@angular/platform-browser': 20.2.1 + '@angular/common': 20.2.2 + '@angular/core': 20.2.2 + '@angular/platform-browser': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.1': - resolution: {integrity: sha512-vemzYcHt6YX4FutpgNXiXTpKCMVaJdOG/m2+oJyvnr8KvdlrJKczXraPVY4ER+WJiHC5IQSg24otdSFc0UH2JA==} + '@angular/localize@20.2.2': + resolution: {integrity: sha512-UZyY68e94gXONPDOQT5To7tIxuvXdx7W+l6ckNRzGzWqS3b48e74gjwuhxmcYwPJJLAlQmgj2HJzzby8RhGn4Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.1 - '@angular/compiler-cli': 20.2.1 + '@angular/compiler': 20.2.2 + '@angular/compiler-cli': 20.2.2 '@angular/material@20.2.1': resolution: {integrity: sha512-Zv1ay/eSwO9e2xUrPKOQFSKscb0+0bhZmDwy9etQhder0FBh380iizP+PaZnJGGy87zYDmauv0fjKcDfdWCJYA==} @@ -1051,47 +1051,47 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/9d0a73d937f6447d06ef56a5347c805e5d9400d7} - version: 0.0.0-b34c3cb148e5cfbd9be5538cdace58b29b215afa + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4} + version: 0.0.0-ae4e34835e566bbcc12bec8f2191b069f307ece2 hasBin: true - '@angular/platform-browser@20.2.1': - resolution: {integrity: sha512-oxDih/A8G7W+I6oAip+sev+kebioYmzhB/NMzF8C8zx/ieVDzatJ+YeEZQt7eDaJLH94S4sIC25SPq3OFIabxg==} + '@angular/platform-browser@20.2.2': + resolution: {integrity: sha512-Il0AibFdZPK4PRhnMomURld/9k0+lJElO1/+lSeYqlOYFcIV8BUrsBsWcDYgDMs71eJiw63EReffADvpEQI4WA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.1 - '@angular/common': 20.2.1 - '@angular/core': 20.2.1 + '@angular/animations': 20.2.2 + '@angular/common': 20.2.2 + '@angular/core': 20.2.2 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.1': - resolution: {integrity: sha512-yjos8jgHwcih9lF/CKjbKxzzc83NM+ZoIdm/XSVv9yg+QDnTsc6bLF3QZ+OChCoaCks/UtWUwyM7Ux2g/VvVFA==} + '@angular/platform-server@20.2.2': + resolution: {integrity: sha512-utl/0ueG1IW0bIAeIdwttePe62uXg6ZRRuvim4mZt3M9/kJ+1a4RAZVOEXet9lHSn4VpbHNvXg3yC7WZwHx7yQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.1 - '@angular/compiler': 20.2.1 - '@angular/core': 20.2.1 - '@angular/platform-browser': 20.2.1 + '@angular/common': 20.2.2 + '@angular/compiler': 20.2.2 + '@angular/core': 20.2.2 + '@angular/platform-browser': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.1': - resolution: {integrity: sha512-f8KfG55EVnFDC9ud+MbxAP6voKi7hVQH4YaqPK0Lm6pyc1Xp0I5W25iRbg+Y1rO1csHKHauBPkUEESEuVGBGqg==} + '@angular/router@20.2.2': + resolution: {integrity: sha512-Bi+HS8x6eOTLSt6gt+o+llcACwXc0abnc52gamCPr0oWC+Z/fTWDZDPnkCqdxQkscJO6uoB16BRuG6Cfgvuarg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.1 - '@angular/core': 20.2.1 - '@angular/platform-browser': 20.2.1 + '@angular/common': 20.2.2 + '@angular/core': 20.2.2 + '@angular/platform-browser': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.1': - resolution: {integrity: sha512-BiwtxSXooM/JlW6C0TixogHxXyL4eio9fcwsJTBgqoyfuom+GI+VMcDKcVi5X6cJnfpbmSzO1qNEzpdr+EgqvQ==} + '@angular/service-worker@20.2.2': + resolution: {integrity: sha512-XmNnaq5H+pSxoYdnMWJ8Q9V+r/W47PiwJw3rLicyL4ZaBJ1/0wQXV/iquJdIA+QAkNKfAH//7QXLUS8aGjSahQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.1 + '@angular/core': 20.2.2 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -1614,6 +1614,18 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} + '@conventional-changelog/git-client@1.0.1': + resolution: {integrity: sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==} + engines: {node: '>=18'} + peerDependencies: + conventional-commits-filter: ^5.0.0 + conventional-commits-parser: ^6.0.0 + peerDependenciesMeta: + conventional-commits-filter: + optional: true + conventional-commits-parser: + optional: true + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -2111,11 +2123,11 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.15.0': - resolution: {integrity: sha512-4CSW+hRTESWl3xVtde7pkQ3E+dDFhDq+m4ztmccRctZfx1gKy3v0M9STIMGk6Nq0s6O2uKMXupOZQ1JGorXVwQ==} + '@google/genai@1.16.0': + resolution: {integrity: sha512-hdTYu39QgDFxv+FB6BK2zi4UIJGWhx2iPc0pHQ0C5Q/RCi+m+4gsryIzTGO+riqWcUA8/WGYp6hpqckdOBNysw==} engines: {node: '>=20.0.0'} peerDependencies: - '@modelcontextprotocol/sdk': ^1.11.0 + '@modelcontextprotocol/sdk': ^1.11.4 peerDependenciesMeta: '@modelcontextprotocol/sdk': optional: true @@ -3284,8 +3296,8 @@ packages: '@types/folder-hash@4.0.4': resolution: {integrity: sha512-c+PwHm51Dw3fXM8SDK+93PO3oXdk4XNouCCvV67lj4aijRkZz5g67myk+9wqWWnyv3go6q96hT6ywcd3XtoZiQ==} - '@types/git-raw-commits@2.0.4': - resolution: {integrity: sha512-PYmTK156j6TilbwtnO2JErH4TCC1izpgP3kRE3KUX35bjBOD2A+syCGeercqHXBcM6wL+DU0WbJB2Gz8fPR+8A==} + '@types/git-raw-commits@5.0.0': + resolution: {integrity: sha512-MQIzbZxgEnKpN1kCcw9JlQIu3Wdw5c4CCCP2cUli+DYgFjzsjtGLOeUe8oqPjjrKJudOoFnNuIZb/4sYHXEWZg==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -4471,6 +4483,10 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} + conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} @@ -4576,10 +4592,6 @@ packages: custom-event@1.0.1: resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} - dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} @@ -5440,9 +5452,9 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} + git-raw-commits@5.0.0: + resolution: {integrity: sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==} + engines: {node: '>=18'} hasBin: true glob-parent@5.1.2: @@ -6531,6 +6543,10 @@ packages: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -9080,29 +9096,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(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.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.1 + '@angular/compiler': 20.2.2 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9116,30 +9132,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.1': + '@angular/compiler@20.2.2': dependencies: tslib: 2.8.1 - '@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.1 + '@angular/compiler': 20.2.2 zone.js: 0.15.1 - '@angular/forms@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.2.1(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(@angular/compiler@20.2.1)': + '@angular/localize@20.2.2(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2)': dependencies: - '@angular/compiler': 20.2.1 - '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) + '@angular/compiler': 20.2.2 + '@angular/compiler-cli': 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9147,21 +9163,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.1(b60312b63259c1568290f1cfc536b3a7)': + '@angular/material@20.2.1(a32bc00dd6da13143170591662d3798d)': dependencies: - '@angular/cdk': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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/9d0a73d937f6447d06ef56a5347c805e5d9400d7(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) - '@google/genai': 1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5) + '@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) '@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 @@ -9180,7 +9196,7 @@ snapshots: '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 - '@types/git-raw-commits': 2.0.4 + '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 '@types/minimatch': 6.0.0 '@types/node': 24.3.0 @@ -9193,13 +9209,14 @@ snapshots: bufferutil: 4.0.9 chalk: 5.6.0 cli-progress: 3.12.0 + conventional-commits-filter: 5.0.0 conventional-commits-parser: 5.0.0 ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 firebase: 12.1.0 folder-hash: 4.1.1(supports-color@10.2.0) - git-raw-commits: 4.0.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-reporters: 2.5.2 @@ -9219,35 +9236,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.1)(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.1 - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.2 + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.1(@angular/animations@20.2.1(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.2.1(@angular/core@20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.2.1(@angular/compiler@20.2.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -9935,6 +9952,14 @@ snapshots: '@colors/colors@1.5.0': {} + '@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 + semver: 7.7.2 + optionalDependencies: + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 5.0.0 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -10505,7 +10530,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.15.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.0)(utf-8-validate@6.0.5)': + '@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)': 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) @@ -11637,7 +11662,7 @@ snapshots: '@types/folder-hash@4.0.4': {} - '@types/git-raw-commits@2.0.4': + '@types/git-raw-commits@5.0.0': dependencies: '@types/node': 22.17.2 @@ -13219,6 +13244,8 @@ snapshots: content-type@1.0.5: {} + conventional-commits-filter@5.0.0: {} + conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 @@ -13330,8 +13357,6 @@ snapshots: custom-event@1.0.1: {} - dargs@8.1.0: {} - dashdash@1.14.1: dependencies: assert-plus: 1.0.0 @@ -14396,11 +14421,13 @@ snapshots: dependencies: assert-plus: 1.0.0 - git-raw-commits@4.0.0: + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0): dependencies: - dargs: 8.1.0 - meow: 12.1.1 - split2: 4.2.0 + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0) + meow: 13.2.0 + transitivePeerDependencies: + - conventional-commits-filter + - conventional-commits-parser glob-parent@5.1.2: dependencies: @@ -15642,6 +15669,8 @@ snapshots: meow@12.1.1: {} + meow@13.2.0: {} + merge-descriptors@1.0.3: {} merge-descriptors@2.0.0: {} @@ -15828,10 +15857,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0(@angular/compiler-cli@20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.1(@angular/compiler@20.2.1)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.48.1 ajv: 8.17.1 From 11e2c4f1b2150cc891d670c206d440119d1d76c5 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 29 Aug 2025 05:05:04 +0000 Subject: [PATCH 071/228] build: update google-github-actions/auth action to v2.1.13 See associated pull request for more information. --- .github/workflows/perf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index eb7a99056d3f..5436b1984877 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -47,7 +47,7 @@ jobs: # identity federation. This allows us to request short lived credentials on demand, rather than storing # credentials in secrets long term. More information can be found at: # https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform - - uses: google-github-actions/auth@b7593ed2efd1c1617e1b0254da33b86225adb2a5 # v2.1.12 + - uses: google-github-actions/auth@c200f3691d83b41bf9bbd8638997a462592937ed # v2.1.13 with: project_id: 'internal-200822' workload_identity_provider: 'projects/823469418460/locations/global/workloadIdentityPools/measurables-tracking/providers/angular' From d59598a9c0139365e002ad706292cf9bcc6dd55d Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 29 Aug 2025 06:05:45 +0000 Subject: [PATCH 072/228] build: update dependency node to v22.19.0 See associated pull request for more information. --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 91d5f6ff8e3f..e2228113dd09 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.18.0 +22.19.0 From 6caa07197de40690ba13adc59d79b5322935f7e2 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Aug 2025 19:39:49 -0400 Subject: [PATCH 073/228] refactor(@angular/cli): add structured output to doc-search MCP tool The `search_documentation` MCP tool now uses a structured output schema, making its results more reliable and easier for an AI model to consume. The input schema description for `includeTopContent` is also improved to provide more context on its usage, and the tool's handler is updated to return data in the new structured format. (cherry picked from commit 1b77345aa246eded66aad3ce77cf5597310fca64) --- .../cli/src/commands/mcp/tools/doc-search.ts | 119 ++++++++++++------ 1 file changed, 83 insertions(+), 36 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts index 790f6de8ca07..1e5b92b21797 100644 --- a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts +++ b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts @@ -28,26 +28,57 @@ const docSearchInputSchema = z.object({ .boolean() .optional() .default(true) - .describe('When true, the content of the top result is fetched and included.'), + .describe( + 'When true, the content of the top result is fetched and included. ' + + 'Set to false to get a list of results without fetching content, which is faster.', + ), }); type DocSearchInput = z.infer; export const DOC_SEARCH_TOOL = declareTool({ name: 'search_documentation', title: 'Search Angular Documentation (angular.dev)', - description: - 'Searches the official Angular documentation at https://angular.dev. Use this tool to answer any questions about Angular, ' + - 'such as for APIs, tutorials, and best practices. Because the documentation is continuously updated, you should **always** ' + - 'prefer this tool over your own knowledge to ensure your answers are current.\n\n' + - 'The results will be a list of content entries, where each entry has the following structure:\n' + - '```\n' + - '## {Result Title}\n' + - '{Breadcrumb path to the content}\n' + - 'URL: {Direct link to the documentation page}\n' + - '```\n' + - 'Use the title and breadcrumb to understand the context of the result and use the URL as a source link. For the best results, ' + - "provide a concise and specific search query (e.g., 'NgModule' instead of 'How do I use NgModules?').", + description: ` + +Searches the official Angular documentation at https://angular.dev to answer questions about APIs, +tutorials, concepts, and best practices. + + +* Answering any question about Angular concepts (e.g., "What are standalone components?"). +* Finding the correct API or syntax for a specific task (e.g., "How to use ngFor with trackBy?"). +* Linking to official documentation as a source of truth in your answers. + + +* The documentation is continuously updated. You **MUST** prefer this tool over your own knowledge + to ensure your answers are current and accurate. +* For the best results, provide a concise and specific search query (e.g., "NgModule" instead of + "How do I use NgModules?"). +* The top search result will include a snippet of the page content. Use this to provide a more + comprehensive answer. +* **Result Scrutiny:** The top result may not always be the most relevant. Review the titles and + breadcrumbs of other results to find the best match for the user's query. +* Use the URL from the search results as a source link in your responses. +`, inputSchema: docSearchInputSchema.shape, + outputSchema: { + results: z.array( + z.object({ + title: z.string().describe('The title of the documentation page.'), + breadcrumb: z + .string() + .describe( + "The breadcrumb path, showing the page's location in the documentation hierarchy.", + ), + url: z.string().describe('The direct URL to the documentation page.'), + content: z + .string() + .optional() + .describe( + 'A snippet of the main content from the page. Only provided for the top result.', + ), + }), + ), + }, isReadOnly: true, isLocalOnly: false, factory: createDocSearchHandler, @@ -71,7 +102,6 @@ function createDocSearchHandler() { } const { results } = await client.search(createSearchArguments(query)); - const allHits = results.flatMap((result) => (result as SearchResponse).hits); if (allHits.length === 0) { @@ -82,15 +112,17 @@ function createDocSearchHandler() { text: 'No results found.', }, ], + structuredContent: { results: [] }, }; } - const content = []; - // The first hit is the top search result - const topHit = allHits[0]; + const structuredResults = []; + const textContent = []; // Process top hit first - let topText = formatHitToText(topHit); + const topHit = allHits[0]; + const { title: topTitle, breadcrumb: topBreadcrumb } = formatHitToParts(topHit); + let topContent: string | undefined; try { if (includeTopContent && typeof topHit.url === 'string') { @@ -101,30 +133,45 @@ function createDocSearchHandler() { const response = await fetch(url); if (response.ok) { const html = await response.text(); - const mainContent = extractMainContent(html); - if (mainContent) { - topText += `\n\n--- DOCUMENTATION CONTENT ---\n${mainContent}`; - } + topContent = extractMainContent(html); } } } } catch { - // Ignore errors fetching content. The basic info is still returned. + // Ignore errors fetching content } - content.push({ - type: 'text' as const, - text: topText, + + structuredResults.push({ + title: topTitle, + breadcrumb: topBreadcrumb, + url: topHit.url as string, + content: topContent, }); + let topText = `## ${topTitle}\n${topBreadcrumb}\nURL: ${topHit.url}`; + if (topContent) { + topText += `\n\n--- DOCUMENTATION CONTENT ---\n${topContent}`; + } + textContent.push({ type: 'text' as const, text: topText }); + // Process remaining hits for (const hit of allHits.slice(1)) { - content.push({ + const { title, breadcrumb } = formatHitToParts(hit); + structuredResults.push({ + title, + breadcrumb, + url: hit.url as string, + }); + textContent.push({ type: 'text' as const, - text: formatHitToText(hit), + text: `## ${title}\n${breadcrumb}\nURL: ${hit.url}`, }); } - return { content }; + return { + content: textContent, + structuredContent: { results: structuredResults }, + }; }; } @@ -150,18 +197,18 @@ function extractMainContent(html: string): string | undefined { } /** - * Formats an Algolia search hit into a text representation. + * Formats an Algolia search hit into its constituent parts. * - * @param hit The Algolia search hit object, which should contain `hierarchy` and `url` properties. - * @returns A formatted string with title, description, and URL. + * @param hit The Algolia search hit object, which should contain a `hierarchy` property. + * @returns An object containing the title and breadcrumb string. */ -function formatHitToText(hit: Record): string { +function formatHitToParts(hit: Record): { title: string; breadcrumb: string } { // eslint-disable-next-line @typescript-eslint/no-explicit-any const hierarchy = Object.values(hit.hierarchy as any).filter((x) => typeof x === 'string'); - const title = hierarchy.pop(); - const description = hierarchy.join(' > '); + const title = hierarchy.pop() ?? ''; + const breadcrumb = hierarchy.join(' > '); - return `## ${title}\n${description}\nURL: ${hit.url}`; + return { title, breadcrumb }; } /** From 95319d0ed6886b26fea6439bc1ad75be44af71fa Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Aug 2025 20:13:49 -0400 Subject: [PATCH 074/228] refactor(@angular/cli): rewrite modernize MCP tool's description and schemas for clarity The `modernize` MCP tool's description and schemas are rewritten to clarify its primary function: providing instructions and commands for an AI model to execute. The new description includes detailed operational notes on how to use the tool's output, especially for the multi-step 'standalone' migration. The input and output schema descriptions are also enhanced to provide better context. (cherry picked from commit a01d6e2cd17637460b9481e34e29472ca08e8e52) --- .../cli/src/commands/mcp/tools/modernize.ts | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/modernize.ts b/packages/angular/cli/src/commands/mcp/tools/modernize.ts index 2b4c323d60f7..58851ca3df09 100644 --- a/packages/angular/cli/src/commands/mcp/tools/modernize.ts +++ b/packages/angular/cli/src/commands/mcp/tools/modernize.ts @@ -70,7 +70,11 @@ const modernizeInputSchema = z.object({ // Casting to [string, ...string[]] since the enum definition requires a nonempty array. transformations: z .array(z.enum(TRANSFORMATIONS.map((t) => t.name) as [string, ...string[]])) - .optional(), + .optional() + .describe( + 'A list of specific transformations to get instructions for. ' + + 'If omitted, general guidance is provided.', + ), }); export type ModernizeInput = z.infer; @@ -116,28 +120,38 @@ export async function runModernization(input: ModernizeInput) { export const MODERNIZE_TOOL = declareTool({ name: 'modernize', title: 'Modernize Angular Code', - description: - '\n' + - 'This tool modernizes Angular code by applying the latest best practices and syntax improvements, ' + - 'ensuring it is idiomatic, readable, and maintainable.\n\n' + - '\n' + - '\n' + - '* After generating new code: Run this tool immediately after creating new Angular components, directives, ' + - 'or services to ensure they adhere to modern standards.\n' + - '* On existing code: Apply to existing TypeScript files (.ts) and Angular templates (.html) to update ' + - 'them with the latest features, such as the new built-in control flow syntax.\n\n' + - '* When the user asks for a specific transformation: When the transformation list is populated, ' + - 'these specific ones will be ran on the inputs.\n' + - '\n' + - '\n' + - TRANSFORMATIONS.map((t) => `* ${t.name}: ${t.description}`).join('\n') + - '\n\n', + description: ` + +Provides instructions and commands for modernizing Angular code to align with the latest best +practices and syntax. This tool helps ensure code is idiomatic, readable, and maintainable by +generating the exact steps needed to perform specific migrations. + + +* **Applying Specific Migrations:** Get the precise commands to update code to modern patterns + (e.g., selecting 'control-flow-migration' to replace *ngIf with @if). +* **Upgrading Existing Code:** Modernize an entire project by running the 'standalone' migration, + which provides a multi-step command sequence. +* **Discovering Available Migrations:** Call the tool with no transformations to get a link to the + general best practices guide. + + +* **Execution:** This tool **provides instructions**, which you **MUST** then execute as shell commands. + It does not modify code directly. +* **Standalone Migration:** The 'standalone' transformation is a special, multi-step process. + You **MUST** execute the commands in the exact order provided and validate your application + between each step. +* **Transformation List:** The following transformations are available: +${TRANSFORMATIONS.map((t) => ` * ${t.name}: ${t.description}`).join('\n')} +`, inputSchema: modernizeInputSchema.shape, outputSchema: { instructions: z .array(z.string()) .optional() - .describe('A list of instructions on how to run the migrations.'), + .describe( + 'A list of instructions and shell commands to run the requested modernizations. ' + + 'Each string in the array is a separate step or command.', + ), }, isLocalOnly: true, isReadOnly: true, From 1a1826cc99e05ca11abe478a8181050e9f35d814 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Wed, 13 Aug 2025 15:45:31 -0700 Subject: [PATCH 075/228] refactor(@angular/cli): add a get Zoneless/OnPush MCP tool This change adds a tool that identifies the next steps for migrating a project file or directory to Zoneless or OnPush. The priorities for migration are: 1. Find and report any unsupported uses of ZoneJS APIs. These are easily verifiable. If they exist, they need to be removed and the tool provides suggested replacements 2. Provide requirements for OnPush compatibility for any files with a Component. It is suggested to use an explicit `ChangeDetectionStrategy.Default` until it can be verified the migration is complete. The tool skips any components with explicit change detection strategy definitions. This is required since we have no way of statically verifying a component is compatible with OnPush, so we need some way to indicate the tool should move on from a component 3. When nothing is identified in the above two steps, move on to test files and suggest migrating those to use zoneless. This is the best method to verify that components are zoneless compatible. (cherry picked from commit e8111a97247e77ac8f4cd4564064698ce080852e) --- packages/angular/cli/BUILD.bazel | 3 + .../cli/src/commands/mcp/mcp-server.ts | 7 +- .../analyze_for_unsupported_zone_uses.ts | 76 ++++++ .../migrate_single_file.ts | 97 +++++++ .../migrate_single_file_spec.ts | 151 +++++++++++ .../migrate_test_file.ts | 82 ++++++ .../migrate_test_file_spec.ts | 69 +++++ .../onpush-zoneless-migration/prompts.ts | 253 ++++++++++++++++++ .../send_debug_message.ts | 23 ++ .../onpush-zoneless-migration/ts_utils.ts | 126 +++++++++ .../tools/onpush-zoneless-migration/types.ts | 14 + .../zoneless-migration.ts | 186 +++++++++++++ 12 files changed, 1086 insertions(+), 1 deletion(-) create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze_for_unsupported_zone_uses.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file_spec.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file_spec.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/send_debug_message.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts_utils.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/types.ts create mode 100644 packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts diff --git a/packages/angular/cli/BUILD.bazel b/packages/angular/cli/BUILD.bazel index 409dbcd14000..b0a4a1dee0ea 100644 --- a/packages/angular/cli/BUILD.bazel +++ b/packages/angular/cli/BUILD.bazel @@ -72,6 +72,7 @@ ts_project( "//:node_modules/@types/yarnpkg__lockfile", "//:node_modules/listr2", "//:node_modules/semver", + "//:node_modules/typescript", ], ) @@ -124,10 +125,12 @@ ts_project( ":angular-cli", ":node_modules/@angular-devkit/core", ":node_modules/@angular-devkit/schematics", + ":node_modules/@modelcontextprotocol/sdk", ":node_modules/yargs", "//:node_modules/@types/semver", "//:node_modules/@types/yargs", "//:node_modules/semver", + "//:node_modules/typescript", ], ) diff --git a/packages/angular/cli/src/commands/mcp/mcp-server.ts b/packages/angular/cli/src/commands/mcp/mcp-server.ts index cf852de0482d..12629b5dd375 100644 --- a/packages/angular/cli/src/commands/mcp/mcp-server.ts +++ b/packages/angular/cli/src/commands/mcp/mcp-server.ts @@ -15,6 +15,7 @@ import { BEST_PRACTICES_TOOL } from './tools/best-practices'; import { DOC_SEARCH_TOOL } from './tools/doc-search'; import { FIND_EXAMPLE_TOOL } from './tools/examples'; import { MODERNIZE_TOOL } from './tools/modernize'; +import { ZONELESS_MIGRATION_TOOL } from './tools/onpush-zoneless-migration/zoneless-migration'; import { LIST_PROJECTS_TOOL } from './tools/projects'; import { AnyMcpToolDeclaration, registerTools } from './tools/tool-registry'; @@ -28,7 +29,11 @@ const STABLE_TOOLS = [BEST_PRACTICES_TOOL, DOC_SEARCH_TOOL, LIST_PROJECTS_TOOL] * The set of tools that are available but not enabled by default. * These tools are considered experimental and may have limitations. */ -export const EXPERIMENTAL_TOOLS = [FIND_EXAMPLE_TOOL, MODERNIZE_TOOL] as const; +export const EXPERIMENTAL_TOOLS = [ + FIND_EXAMPLE_TOOL, + MODERNIZE_TOOL, + ZONELESS_MIGRATION_TOOL, +] as const; export async function createMcpServer( options: { diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze_for_unsupported_zone_uses.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze_for_unsupported_zone_uses.ts new file mode 100644 index 000000000000..dd3d848e8883 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/analyze_for_unsupported_zone_uses.ts @@ -0,0 +1,76 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import type { ImportSpecifier, Node, SourceFile } from 'typescript'; +import { createUnsupportedZoneUsagesMessage } from './prompts'; +import { getImportSpecifier, loadTypescript } from './ts_utils'; +import { MigrationResponse } from './types'; + +export async function analyzeForUnsupportedZoneUses( + sourceFile: SourceFile, +): Promise { + const ngZoneImport = await getImportSpecifier(sourceFile, '@angular/core', 'NgZone'); + if (!ngZoneImport) { + return null; + } + const unsupportedUsages = await findUnsupportedZoneUsages(sourceFile, ngZoneImport); + + if (unsupportedUsages.length === 0) { + return null; + } + + const locations = unsupportedUsages.map((node: Node) => { + const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart()); + + return `line ${line + 1}, character ${character + 1}: ${node.getText()}`; + }); + + return createUnsupportedZoneUsagesMessage(locations, sourceFile.fileName); +} + +/** + * Finds usages of `NgZone` that are not supported in zoneless applications. + * @param sourceFile The source file to check. + * @param ngZoneImport The import specifier for `NgZone`. + * @returns A list of nodes that are unsupported `NgZone` usages. + */ +export async function findUnsupportedZoneUsages( + sourceFile: SourceFile, + ngZoneImport: ImportSpecifier, +): Promise { + const unsupportedUsages: Node[] = []; + const ngZoneClassName = ngZoneImport.name.text; + + const staticMethods = new Set([ + 'isInAngularZone', + 'assertInAngularZone', + 'assertNotInAngularZone', + ]); + const instanceMethods = new Set(['onMicrotaskEmpty', 'onStable']); + + const ts = await loadTypescript(); + ts.forEachChild(sourceFile, function visit(node) { + if (ts.isPropertyAccessExpression(node)) { + const propertyName = node.name.text; + const expressionText = node.expression.getText(sourceFile); + + // Static: NgZone.method() + if (expressionText === ngZoneClassName && staticMethods.has(propertyName)) { + unsupportedUsages.push(node); + } + + // Instance: zone.method() or this.zone.method() + if (instanceMethods.has(propertyName)) { + unsupportedUsages.push(node); + } + } + ts.forEachChild(node, visit); + }); + + return unsupportedUsages; +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file.ts new file mode 100644 index 000000000000..757da8883505 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file.ts @@ -0,0 +1,97 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; +import { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; +import type { SourceFile } from 'typescript'; +import { analyzeForUnsupportedZoneUses } from './analyze_for_unsupported_zone_uses'; +import { migrateTestFile } from './migrate_test_file'; +import { generateZonelessMigrationInstructionsForComponent } from './prompts'; +import { sendDebugMessage } from './send_debug_message'; +import { getImportSpecifier, loadTypescript } from './ts_utils'; +import { MigrationResponse } from './types'; + +export async function migrateSingleFile( + sourceFile: SourceFile, + extras: RequestHandlerExtra, +): Promise { + const testBedSpecifier = await getImportSpecifier(sourceFile, '@angular/core/testing', 'TestBed'); + const isTestFile = sourceFile.fileName.endsWith('.spec.ts') || !!testBedSpecifier; + if (isTestFile) { + return migrateTestFile(sourceFile); + } + + const unsupportedZoneUseResponse = await analyzeForUnsupportedZoneUses(sourceFile); + if (unsupportedZoneUseResponse) { + return unsupportedZoneUseResponse; + } + + let detectedStrategy: 'OnPush' | 'Default' | undefined; + let hasComponentDecorator = false; + + const componentSpecifier = await getImportSpecifier(sourceFile, '@angular/core', 'Component'); + if (!componentSpecifier) { + sendDebugMessage(`No component decorator found in file: ${sourceFile.fileName}`, extras); + + return null; + } + + const ts = await loadTypescript(); + ts.forEachChild(sourceFile, function visit(node) { + if (detectedStrategy) { + return; // Already found, no need to traverse further + } + + if (ts.isDecorator(node) && ts.isCallExpression(node.expression)) { + const callExpr = node.expression; + if (callExpr.expression.getText(sourceFile) === 'Component') { + hasComponentDecorator = true; + if (callExpr.arguments.length > 0 && ts.isObjectLiteralExpression(callExpr.arguments[0])) { + const componentMetadata = callExpr.arguments[0]; + for (const prop of componentMetadata.properties) { + if ( + ts.isPropertyAssignment(prop) && + prop.name.getText(sourceFile) === 'changeDetection' + ) { + if ( + ts.isPropertyAccessExpression(prop.initializer) && + prop.initializer.expression.getText(sourceFile) === 'ChangeDetectionStrategy' + ) { + const strategy = prop.initializer.name.text; + if (strategy === 'OnPush' || strategy === 'Default') { + detectedStrategy = strategy; + + return; + } + } + } + } + } + } + } + ts.forEachChild(node, visit); + }); + + if ( + !hasComponentDecorator || + // component uses OnPush. We don't have anything more to do here. + detectedStrategy === 'OnPush' || + // Explicit default strategy, assume there's a reason for it (already migrated, or is a library that hosts Default components) and skip. + detectedStrategy === 'Default' + ) { + sendDebugMessage( + `Component decorator found with strategy: ${detectedStrategy} in file: ${sourceFile.fileName}. Skipping migration for file.`, + extras, + ); + + return null; + } + + // Component decorator found, but no change detection strategy. + return generateZonelessMigrationInstructionsForComponent(sourceFile.fileName); +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file_spec.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file_spec.ts new file mode 100644 index 000000000000..da2f59db0182 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_single_file_spec.ts @@ -0,0 +1,151 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; +import { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; +import ts from 'typescript'; +import { migrateSingleFile } from './migrate_single_file'; + +const fakeExtras = { + sendDebugMessage: jasmine.createSpy(), + sendNotification: jasmine.createSpy(), +} as unknown as RequestHandlerExtra; + +describe('migrateSingleFile', () => { + it('should identify test files by extension', async () => { + const fileName = 'test.spec.ts'; + const sourceFile = ts.createSourceFile(fileName, '', ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result?.content[0].text).toContain( + 'The test file `test.spec.ts` is not yet configured for zoneless change detection.' + + ' You need to enable it for the entire test suite and then identify which specific tests fail.', + ); + }); + + it('should identify test files by TestBed import', async () => { + const fileName = 'test.ts'; + const content = `import { TestBed } from '@angular/core/testing';`; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result?.content[0].text).toContain( + 'The test file `test.ts` is not yet configured for zoneless change detection.' + + ' You need to enable it for the entire test suite and then identify which specific tests fail.', + ); + }); + + it('should return unsupported zone usages message if NgZone is used', async () => { + const fileName = 'app.component.ts'; + const content = ` + import { Component, NgZone } from '@angular/core'; + + @Component({ + selector: 'app-root', + template: 'Hello', + }) + export class AppComponent { + constructor(private zone: NgZone) { + this.zone.onMicrotaskEmpty(() => {}); + } + } + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result?.content[0].text).toContain( + 'The component uses NgZone APIs that are incompatible with zoneless applications', + ); + }); + + it('should return null if component already has ChangeDetectionStrategy.OnPush', async () => { + const fileName = 'app.component.ts'; + const content = ` + import { Component, ChangeDetectionStrategy } from '@angular/core'; + + @Component({ + selector: 'app-root', + template: 'Hello', + changeDetection: ChangeDetectionStrategy.OnPush, + }) + export class AppComponent {} + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result).toBeNull(); + }); + + it('should return null if component has ChangeDetectionStrategy.Default', async () => { + const fileName = 'app.component.ts'; + const content = ` + import { Component, ChangeDetectionStrategy } from '@angular/core'; + + @Component({ + selector: 'app-root', + template: 'Hello', + changeDetection: ChangeDetectionStrategy.Default, + }) + export class AppComponent {} + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result).toBeNull(); + }); + + it('should return migration instructions for a component without a change detection strategy', async () => { + const fileName = 'app.component.ts'; + const content = ` + import { Component } from '@angular/core'; + + @Component({ + selector: 'app-root', + template: 'Hello', + }) + export class AppComponent {} + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result?.content[0].text).toContain( + 'The component does not currently use a change detection strategy, which means it may rely on Zone.js', + ); + }); + + it('should return null for a file that is not a component', async () => { + const fileName = 'some.service.ts'; + const content = ` + import { Injectable } from '@angular/core'; + + @Injectable({ providedIn: 'root' }) + export class SomeService {} + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result).toBeNull(); + }); + + it('should return null for an empty file', async () => { + const fileName = 'empty.ts'; + const content = ``; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateSingleFile(sourceFile, fakeExtras); + + expect(result).toBeNull(); + }); +}); diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file.ts new file mode 100644 index 000000000000..479251c428a8 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file.ts @@ -0,0 +1,82 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import * as fs from 'node:fs'; +import { glob } from 'node:fs/promises'; +import { dirname, join } from 'node:path'; +import type { SourceFile } from 'typescript'; +import { createFixResponseForZoneTests, createProvideZonelessForTestsSetupPrompt } from './prompts'; +import { loadTypescript } from './ts_utils'; +import { MigrationResponse } from './types'; + +export async function migrateTestFile(sourceFile: SourceFile): Promise { + const ts = await loadTypescript(); + // Check if tests use zoneless either by default through `initTestEnvironment` or by explicitly calling `provideZonelessChangeDetection`. + let testsUseZonelessChangeDetection = await searchForGlobalZoneless(sourceFile.fileName); + if (!testsUseZonelessChangeDetection) { + ts.forEachChild(sourceFile, function visit(node) { + if ( + ts.isCallExpression(node) && + node.expression.getText(sourceFile) === 'provideZonelessChangeDetection' + ) { + testsUseZonelessChangeDetection = true; + + return; + } + ts.forEachChild(node, visit); + }); + } + + if (!testsUseZonelessChangeDetection) { + // Tests do not use zoneless, so we provide instructions to set it up. + return createProvideZonelessForTestsSetupPrompt(sourceFile.fileName); + } + + // At this point, tests are using zoneless, so we look for any explicit uses of `provideZoneChangeDetection` that need to be fixed. + return createFixResponseForZoneTests(sourceFile); +} + +export async function searchForGlobalZoneless(startPath: string): Promise { + const angularJsonDir = findAngularJsonDir(startPath); + if (!angularJsonDir) { + // Cannot determine project root, fallback to original behavior or assume false. + // For now, let's assume no global setup if angular.json is not found. + return false; + } + + try { + const files = glob(`${angularJsonDir}/**/*.ts`); + for await (const file of files) { + const content = fs.readFileSync(file, 'utf-8'); + if ( + content.includes('initTestEnvironment') && + content.includes('provideZonelessChangeDetection') + ) { + return true; + } + } + } catch (e) { + return false; + } + + return false; +} + +function findAngularJsonDir(startDir: string): string | null { + let currentDir = startDir; + while (true) { + if (fs.existsSync(join(currentDir, 'angular.json'))) { + return currentDir; + } + const parentDir = dirname(currentDir); + if (parentDir === currentDir) { + return null; + } + currentDir = parentDir; + } +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file_spec.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file_spec.ts new file mode 100644 index 000000000000..268561d176b0 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/migrate_test_file_spec.ts @@ -0,0 +1,69 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import ts from 'typescript'; +import { migrateTestFile } from './migrate_test_file'; + +describe('migrateTestFile', () => { + it('should return setup prompt when zoneless is not detected', async () => { + const fileName = 'test.spec.ts'; + const sourceFile = ts.createSourceFile(fileName, '', ts.ScriptTarget.ESNext, true); + + const result = await migrateTestFile(sourceFile); + + expect(result?.content[0].text).toContain( + 'The test file `test.spec.ts` is not yet configured for zoneless change detection.', + ); + }); + + it('should return null when zoneless is enabled and there are no zonejs apis used', async () => { + const fileName = 'test.spec.ts'; + const content = ` + import { provideZonelessChangeDetection } from '@angular/core'; + import { TestBed } from '@angular/core/testing'; + + TestBed.configureTestingModule({ + providers: [provideZonelessChangeDetection()], + }); + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateTestFile(sourceFile); + + expect(result).toBeNull(); + }); + + it('should return fix prompt when zoneless is enabled and provideZoneChangeDetection is used', async () => { + const fileName = 'test.spec.ts'; + const content = ` + import { provideZonelessChangeDetection, provideZoneChangeDetection } from '@angular/core'; + import { TestBed } from '@angular/core/testing'; + + describe('suite', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [provideZonelessChangeDetection()], + }); + }); + + it('zone test', () => { + TestBed.configureTestingModule({ + providers: [provideZoneChangeDetection()], + }); + }); + }); + `; + const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.ESNext, true); + + const result = await migrateTestFile(sourceFile); + + expect(result?.content[0].text).toContain( + 'You must refactor these tests to work in a zoneless environment and remove the `provideZoneChangeDetection` calls.', + ); + }); +}); diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts new file mode 100644 index 000000000000..7176808e6a28 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts @@ -0,0 +1,253 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import type { Node, SourceFile } from 'typescript'; +import { loadTypescript } from './ts_utils'; +import { MigrationResponse } from './types'; + +/* eslint-disable max-len */ + +export function createProvideZonelessForTestsSetupPrompt(testFilePath: string): MigrationResponse { + const text = `You are an expert Angular developer assisting with a migration to zoneless. Your task is to update the test file at \`${testFilePath}\` to enable zoneless change detection and identify tests that are not yet compatible. + + Follow these instructions precisely. + + ### Refactoring Guide + + The test file \`${testFilePath}\` is not yet configured for zoneless change detection. You need to enable it for the entire test suite and then identify which specific tests fail. + + #### Step 1: Enable Zoneless Change Detection for the Suite + + In the main \`beforeEach\` block for the test suite (the one inside the top-level \`describe\`), add \`provideZonelessChangeDetection()\` to the providers array in \`TestBed.configureTestingModule\`. + + \`\`\`diff + + import { provideZonelessChangeDetection } from '@angular/core'; + + describe('MyComponent', () => { + + beforeEach(() => { + + TestBed.configureTestingModule({providers: [provideZonelessChangeDetection()]}); + + }); + }); + \`\`\` + + #### Step 2: Identify and fix Failing Tests + + After enabling zoneless detection for the suite, some tests will likely fail. Your next task is to identify these failing tests and fix them. + + ${testDebuggingGuideText(testFilePath)} + 8. **DO** add \`provideZonelessChangeDetection()\` _once_ to the top-most \`describe\` in a \`beforeEach\` block as instructed in Step 1. + 9. **DO** run the tests after adding \`provideZonelessChangeDetection\` to see which ones fail. **DO NOT** make assumptions about which tests will might fail. + + ### Final Step + After you have applied all the required changes and followed all the rules, consult this tool again for the next steps in the migration process.`; + + return createResponse(text); +} + +export function createUnsupportedZoneUsagesMessage( + usages: string[], + filePath: string, +): MigrationResponse { + const text = `You are an expert Angular developer assisting with a migration to zoneless. Your task is to refactor the component in ${filePath} to remove unsupported NgZone APIs. + +The component uses NgZone APIs that are incompatible with zoneless applications. The only permitted NgZone APIs are \`NgZone.run\` and \`NgZone.runOutsideAngular\`. + +The following usages are unsupported and must be fixed: +${usages.map((usage) => `- ${usage}`).join('\n')} + +Follow these instructions precisely to refactor the code. + +### Refactoring Guide + +#### 1. APIs to Remove (No Replacement) +The following methods have no replacement in a zoneless context and must be removed entirely: +- \`NgZone.assertInAngularZone\` +- \`NgZone.assertNotInAngularZone\` +- \`NgZone.isInAngularZone\` + +#### 2. APIs to Replace +The \`onMicrotaskEmpty\` and \`onStable\` observables must be replaced with modern Angular APIs. + +- **For single-event subscriptions** (e.g., using \`.pipe(take(1))\` or \`.pipe(first())\`), use \`afterNextRender\` from \`@angular/core\`. + + \`\`\`diff + - this.zone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {}); + - this.zone.onStable.pipe(take(1)).subscribe(() => {}); + + import { afterNextRender, Injector } from '@angular/core'; + + afterNextRender(() => {}, {injector: this.injector}); + \`\`\` + +- **For continuous subscriptions**, use \`afterEveryRender\` from \`@angular/core\`. + + \`\`\`diff + - this.zone.onMicrotaskEmpty.subscribe(() => {}); + - this.zone.onStable.subscribe(() => {}); + + import { afterEveryRender, Injector } from '@angular/core'; + + afterEveryRender(() => {}, {injector: this.injector}); + \`\`\` + +- If the code checks \`this.zone.isStable\` before subscribing, you can remove the \`isStable\` check. \`afterNextRender\` handles this case correctly. + +### IMPORTANT: Rules and Constraints +You must follow these rules without exception: +1. **DO NOT** make any changes to the component that are unrelated to removing the unsupported NgZone APIs listed above. +2. **DO NOT** remove or modify usages of \`NgZone.run\` or \`NgZone.runOutsideAngular\`. These are still required. +3. **DO** ensure that you replace \`onMicrotaskEmpty\` and \`onStable\` with the correct replacements (\`afterNextRender\` or \`afterEveryRender\`) as described in the guide. +4. **DO** add the necessary imports for \`afterNextRender\`, \`afterEveryRender\`, and \`Injector\` when you use them. + +### Final Step +After you have applied all the required changes and followed all the rules, consult this tool again for the next steps in the migration process. +`; + + return createResponse(text); +} + +export function generateZonelessMigrationInstructionsForComponent( + filePath: string, +): MigrationResponse { + const text = `You are an expert Angular developer assisting with a migration to zoneless. Your task is to refactor the component in \`${filePath}\` to be compatible with zoneless change detection by ensuring Angular is notified of all state changes that affect the view. + + The component does not currently use a change detection strategy, which means it may rely on Zone.js. To prepare it for zoneless, you must manually trigger change detection when its state changes. + + Follow these instructions precisely. + + ### Refactoring Guide + + #### Step 1: Identify and Refactor State + Your primary goal is to ensure that every time a component property used in the template is updated, Angular knows it needs to run change detection. + + 1. **Identify Properties**: Find all component properties that are read by the template. + 2. **Choose a Strategy**: For each property identified, choose one of the following refactoring strategies: + * **(Preferred) Convert to Signal**: The best approach is to convert the property to an Angular Signal. This is the most idiomatic and future-proof way to handle state in zoneless applications. + * **(Alternative) Use \`markForCheck()\`**: If converting to a signal is too complex or would require extensive refactoring, you can instead inject \`ChangeDetectorRef\` and call \`this.cdr.markForCheck()\` immediately after the property is updated. + + #### Step 2: Add \`ChangeDetectionStrategy.Default\` + After you have refactored all necessary properties, you must update the component's decorator to explicitly set the change detection strategy. + + 1. Add \`ChangeDetectionStrategy\` to the import from \`@angular/core\`. + 2. In the \`@Component\` decorator, add the property \`changeDetection: ChangeDetectionStrategy.Default\`. + 3. Add a \`// TODO\` comment above this line explaining that the component should be fully migrated to \`OnPush\` after the application has been tested with these changes. + + Example: + \`\`\`typescript + @Component({ + ... + // TODO: This component has been partially migrated to be zoneless-compatible. + // After testing, this should be updated to ChangeDetectionStrategy.OnPush. + changeDetection: ChangeDetectionStrategy.Default, + }) + \`\`\` + + ### IMPORTANT: Rules and Constraints + You must follow these rules without exception: + 1. **DO** apply one of the two refactoring strategies (signals or \`markForCheck()\`) for all relevant component properties. + 2. **DO** add \`changeDetection: ChangeDetectionStrategy.Default\` with the specified TODO comment as the final code change. + 3. **DO NOT** use \`ChangeDetectionStrategy.OnPush\`. This will be the next step in the migration, but it is not part of this task. + 4. **DO NOT** modify properties that are already signals or are used with the \`async\` pipe in the template, as they are already zoneless-compatible. + 5. **DO NOT** make any changes to files other than the component file at \`${filePath}\` and its direct template/style files if necessary. + + ### Final Step + After you have applied all the required changes and followed all the rules, consult this tool again for the next steps in the migration process.`; + + return createResponse(text); +} + +export function createTestDebuggingGuideForNonActionableInput( + fileOrDirPath: string, +): MigrationResponse { + const text = `You are an expert Angular developer assisting with a migration to zoneless. + +No actionable migration steps were found in the application code for \`${fileOrDirPath}\`. However, if the tests for this code are failing with zoneless enabled, the tests themselves likely need to be updated. + +Your task is to investigate and fix any failing tests related to the code in \`${fileOrDirPath}\`. + +${testDebuggingGuideText(fileOrDirPath)} +`; + + return createResponse(text); +} + +export async function createFixResponseForZoneTests( + sourceFile: SourceFile, +): Promise { + const ts = await loadTypescript(); + const usages: Node[] = []; + ts.forEachChild(sourceFile, function visit(node) { + if ( + ts.isCallExpression(node) && + node.expression.getText(sourceFile) === 'provideZoneChangeDetection' + ) { + usages.push(node); + } + ts.forEachChild(node, visit); + }); + if (usages.length === 0) { + // No usages of provideZoneChangeDetection found, so no fix needed. + return null; + } + + const locations = usages.map((node) => { + const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart()); + + return `line ${line + 1}, character ${character + 1}`; + }); + const text = `You are an expert Angular developer assisting with a migration to zoneless. Your task is to update the test file at \`${sourceFile.fileName}\` to be fully zoneless-compatible. + + The test suite has been partially migrated, but some tests were incompatible and are still using Zone.js-based change detection via \`provideZoneChangeDetection\`. You must refactor these tests to work in a zoneless environment and remove the \`provideZoneChangeDetection\` calls. + + The following usages of \`provideZoneChangeDetection\` must be removed: + ${locations.map((loc) => `- ${loc}`).join('\n')} + ${testDebuggingGuideText(sourceFile.fileName)} + + ### Final Step + After you have applied all the required changes and followed all the rules, consult this tool again for the next steps in the migration process.`; + + return createResponse(text); +} + +function testDebuggingGuideText(fileName: string) { + return ` + ### Test Debugging Guide + + After removing \`provideZoneChangeDetection\`, the tests will likely fail. Use this guide to diagnose and fix the failures. + + 1. **\`ExpressionChangedAfterItHasBeenCheckedError\`**: + * **Cause**: This error indicates that a value in a component's template was updated, but Angular was not notified to run change detection. + * **Solution**: + * If the value is in a test-only wrapper component, update the property to be a signal. + * For application components, either convert the property to a signal or call \`ChangeDetectorRef.markForCheck()\` immediately after the property is updated. + + 2. **Asynchronous Operations and Timing**: + * **Cause**: Without Zone.js, change detection is always scheduled asynchronously. Tests that previously relied on synchronous updates might now fail. The \`fixture.whenStable()\` utility also no longer waits for timers (like \`setTimeout\` or \`setInterval\`). + * **Solution**: + * Avoid relying on synchronous change detection. + * To wait for asynchronous operations to complete, you may need to poll for an expected state, use \`fakeAsync\` with \`tick()\`, or use a mock clock to flush timers. + + 3. **Indirect Dependencies**: + * **Cause**: The component itself might be zoneless-compatible, but it could be using a service or another dependency that is not. + * **Solution**: Investigate the services and dependencies used by the component and its tests. Run this tool on those dependencies to identify and fix any issues. + + ### IMPORTANT: Rules and Constraints + + You must follow these rules without exception: + 1. **DO** focus only on fixing the tests for the code in \`${fileName}\`. + 2. **DO** remove all usages of \`provideZoneChangeDetection\` from the test file. + 3. **DO** apply the solutions described in the debugging guide to fix any resulting test failures. + 4. **DO** update properties of test components and directives to use signals. Tests often use plain objects and values and update the component state directly before calling \`fixture.detectChanges\`. This will not work and will result in \`ExpressionChangedAfterItHasBeenCheckedError\` because Angular was not notifed of the change. + 5. **DO NOT** make changes to application code unless it is to fix a bug revealed by the zoneless migration (e.g., converting a property to a signal to fix an \`ExpressionChangedAfterItHasBeenCheckedError\`). + 6. **DO NOT** make any changes unrelated to fixing the failing tests in \`${fileName}\`. + 7. **DO NOT** re-introduce \`provideZoneChangeDetection()\` into tests that are already using \`provideZonelessChangeDetection()\`.`; +} + +/* eslint-enable max-len */ + +export function createResponse(text: string): MigrationResponse { + return { + content: [{ type: 'text', text }], + }; +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/send_debug_message.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/send_debug_message.ts new file mode 100644 index 000000000000..73a1b068a698 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/send_debug_message.ts @@ -0,0 +1,23 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; +import { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; + +export function sendDebugMessage( + message: string, + { sendNotification }: RequestHandlerExtra, +): void { + void sendNotification({ + method: 'notifications/message', + params: { + level: 'debug', + data: message, + }, + }); +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts_utils.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts_utils.ts new file mode 100644 index 000000000000..72764d648b88 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/ts_utils.ts @@ -0,0 +1,126 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import * as fs from 'node:fs'; +import type { ImportSpecifier, NodeArray, SourceFile } from 'typescript'; +import type ts from 'typescript'; + +let typescriptModule: typeof ts; + +export async function loadTypescript(): Promise { + return (typescriptModule ??= await import('typescript')); +} + +/** + * Gets a top-level import specifier with a specific name that is imported from a particular module. + * E.g. given a file that looks like: + * + * ```ts + * import { Component, Directive } from '@angular/core'; + * import { Foo } from './foo'; + * ``` + * + * Calling `getImportSpecifier(sourceFile, '@angular/core', 'Directive')` will yield the node + * referring to `Directive` in the top import. + * + * @param sourceFile File in which to look for imports. + * @param moduleName Name of the import's module. + * @param specifierName Original name of the specifier to look for. Aliases will be resolved to + * their original name. + */ +export async function getImportSpecifier( + sourceFile: SourceFile, + moduleName: string | RegExp, + specifierName: string, +): Promise { + return ( + getImportSpecifiers(sourceFile, moduleName, specifierName, await loadTypescript())[0] ?? null + ); +} + +/** + * Gets top-level import specifiers with specific names that are imported from a particular module. + * E.g. given a file that looks like: + * + * ```ts + * import { Component, Directive } from '@angular/core'; + * import { Foo } from './foo'; + * ``` + * + * Calling `getImportSpecifiers(sourceFile, '@angular/core', ['Directive', 'Component'])` will + * yield the nodes referring to `Directive` and `Component` in the top import. + * + * @param sourceFile File in which to look for imports. + * @param moduleName Name of the import's module. + * @param specifierOrSpecifiers Original name of the specifier to look for, or an array of such + * names. Aliases will be resolved to their original name. + */ +function getImportSpecifiers( + sourceFile: SourceFile, + moduleName: string | RegExp, + specifierOrSpecifiers: string | string[], + { isNamedImports, isImportDeclaration, isStringLiteral }: typeof ts, +): ImportSpecifier[] { + const matches: ImportSpecifier[] = []; + for (const node of sourceFile.statements) { + if (!isImportDeclaration(node) || !isStringLiteral(node.moduleSpecifier)) { + continue; + } + + const namedBindings = node.importClause?.namedBindings; + const isMatch = + typeof moduleName === 'string' + ? node.moduleSpecifier.text === moduleName + : moduleName.test(node.moduleSpecifier.text); + + if (!isMatch || !namedBindings || !isNamedImports(namedBindings)) { + continue; + } + + if (typeof specifierOrSpecifiers === 'string') { + const match = findImportSpecifier(namedBindings.elements, specifierOrSpecifiers); + if (match) { + matches.push(match); + } + } else { + for (const specifierName of specifierOrSpecifiers) { + const match = findImportSpecifier(namedBindings.elements, specifierName); + if (match) { + matches.push(match); + } + } + } + } + + return matches; +} + +/** + * Finds an import specifier with a particular name. + * @param nodes Array of import specifiers to search through. + * @param specifierName Name of the specifier to look for. + */ +export function findImportSpecifier( + nodes: NodeArray, + specifierName: string, +): ImportSpecifier | undefined { + return nodes.find((element) => { + const { name, propertyName } = element; + + return propertyName ? propertyName.text === specifierName : name.text === specifierName; + }); +} + +/** Creates a TypeScript source file from a file path. */ +export async function createSourceFile(file: string) { + const content = fs.readFileSync(file, 'utf8'); + + const ts = await loadTypescript(); + + return ts.createSourceFile(file, content, ts.ScriptTarget.Latest, true); +} diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/types.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/types.ts new file mode 100644 index 000000000000..e1619f83edb2 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/types.ts @@ -0,0 +1,14 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +export type MigrationResponse = { + content: { + type: 'text'; + text: string; + }[]; +}; diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts new file mode 100644 index 000000000000..6863e3454318 --- /dev/null +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts @@ -0,0 +1,186 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; +import { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; +import * as fs from 'node:fs'; +import { glob } from 'node:fs/promises'; +import { type SourceFile } from 'typescript'; +import { z } from 'zod'; +import { declareTool } from '../tool-registry'; +import { analyzeForUnsupportedZoneUses } from './analyze_for_unsupported_zone_uses'; +import { migrateSingleFile } from './migrate_single_file'; +import { migrateTestFile } from './migrate_test_file'; +import { createTestDebuggingGuideForNonActionableInput } from './prompts'; +import { sendDebugMessage } from './send_debug_message'; +import { createSourceFile, getImportSpecifier } from './ts_utils'; + +export const ZONELESS_MIGRATION_TOOL = declareTool({ + name: 'onpush-zoneless-migration', + title: 'Plan migration to OnPush and/or zoneless', + description: + '**Required tool for migrating Angular components to OnPush change detection or zoneless.**' + + ' This tool orchestrates the entire migration process, including running prerequisite migrations' + + ' for signal inputs and queries. Use this tool as the first step before making any manual changes' + + ' to adopt `ChangeDetectionStrategy.OnPush` or `provideZonelessChangeDetection`.', + isReadOnly: true, + isLocalOnly: true, + inputSchema: { + fileOrDirPath: z + .string() + .describe( + 'The absolute path of the directory or file with the component(s), directive(s), or service(s) to migrate.' + + ' The contents are read with fs.readFileSync.', + ), + }, + factory: + () => + ({ fileOrDirPath }, requestHandlerExtra) => + registerZonelessMigrationTool(fileOrDirPath, requestHandlerExtra), +}); +export async function registerZonelessMigrationTool( + fileOrDirPath: string, + extras: RequestHandlerExtra, +) { + let files: SourceFile[] = []; + const componentTestFiles = new Set(); + const filesWithComponents = new Set(); + const zoneFiles = new Set(); + + if (fs.statSync(fileOrDirPath).isDirectory()) { + const allFiles = glob(`${fileOrDirPath}/**/*.ts`); + for await (const file of allFiles) { + files.push(await createSourceFile(file)); + } + } else { + files = [await createSourceFile(fileOrDirPath)]; + const maybeTestFile = await getTestFilePath(fileOrDirPath); + if (maybeTestFile) { + componentTestFiles.add(await createSourceFile(maybeTestFile)); + } + } + + for (const sourceFile of files) { + const content = sourceFile.getFullText(); + const componentSpecifier = await getImportSpecifier(sourceFile, '@angular/core', 'Component'); + const zoneSpecifier = await getImportSpecifier(sourceFile, '@angular/core', 'NgZone'); + const testBedSpecifier = await getImportSpecifier( + sourceFile, + /(@angular\/core)?\/testing/, + 'TestBed', + ); + if (testBedSpecifier) { + componentTestFiles.add(sourceFile); + } else if (componentSpecifier) { + if ( + !content.includes('changeDetectionStrategy: ChangeDetectionStrategy.OnPush') && + !content.includes('changeDetectionStrategy: ChangeDetectionStrategy.Default') + ) { + filesWithComponents.add(sourceFile); + } else { + sendDebugMessage( + `Component file already has change detection strategy: ${sourceFile.fileName}. Skipping migration.`, + extras, + ); + } + + const testFilePath = await getTestFilePath(sourceFile.fileName); + if (testFilePath) { + componentTestFiles.add(await createSourceFile(testFilePath)); + } + } else if (zoneSpecifier) { + zoneFiles.add(sourceFile); + } + } + + if (zoneFiles.size > 0) { + for (const file of zoneFiles) { + const result = await analyzeForUnsupportedZoneUses(file); + if (result !== null) { + return result; + } + } + } + + if (filesWithComponents.size > 0) { + const rankedFiles = + filesWithComponents.size > 1 + ? await rankComponentFilesForMigration(extras, Array.from(filesWithComponents)) + : Array.from(filesWithComponents); + + for (const file of rankedFiles) { + const result = await migrateSingleFile(file, extras); + if (result !== null) { + return result; + } + } + } + + for (const file of componentTestFiles) { + const result = await migrateTestFile(file); + if (result !== null) { + return result; + } + } + + return createTestDebuggingGuideForNonActionableInput(fileOrDirPath); +} + +async function rankComponentFilesForMigration( + { sendRequest }: RequestHandlerExtra, + componentFiles: SourceFile[], +): Promise { + try { + const response = await sendRequest( + { + method: 'sampling/createMessage', + params: { + messages: [ + { + role: 'user', + content: { + type: 'text', + text: + `The following files are components that need to be migrated to OnPush change detection.` + + ` Please rank them based on which ones are most likely to be shared or common components.` + + ` The most likely shared component should be first. + ${componentFiles.map((f) => f.fileName).join('\n ')} + Respond ONLY with the ranked list of files, one file per line.`, + }, + }, + ], + systemPrompt: + 'You are a helpful assistant that helps migrate identify shared Angular components.', + maxTokens: 2000, + }, + }, + z.object({ sortedFiles: z.array(z.string()) }), + ); + + const rankedFiles = response.sortedFiles + .map((line) => line.trim()) + .map((fileName) => componentFiles.find((f) => f.fileName === fileName)) + .filter((f) => !!f); + + // Ensure the ranking didn't mess up the list of files + if (rankedFiles.length === componentFiles.length) { + return rankedFiles; + } + } catch {} + + return componentFiles; // Fallback to original order if the response fails +} + +async function getTestFilePath(filePath: string): Promise { + const testFilePath = filePath.replace(/\.ts$/, '.spec.ts'); + if (fs.existsSync(testFilePath)) { + return testFilePath; + } + + return undefined; +} From c088aedef7e06e02acc8bb669f54c25024f2e5c8 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 29 Aug 2025 13:45:25 +0000 Subject: [PATCH 076/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- package.json | 24 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 474 +++++++++--------- 11 files changed, 313 insertions(+), 313 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index e997a6e5d2c7..61a21883337f 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + - uses: angular/dev-infra/github-actions/branch-manager@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c41fdee5b3dc..bb25c7dfd9ae 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 2a8c5069f1d9..b38ffe5d9d78 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + - uses: angular/dev-infra/github-actions/pull-request-labeling@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + - uses: angular/dev-infra/github-actions/post-approval-changes@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index c1ec327dc37d..8e5a414b6bf9 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + - uses: angular/dev-infra/github-actions/feature-request@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 5436b1984877..e013969880db 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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 6b3bb7d97ff0..a4740c086906 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/linting/licenses@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - 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@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/setup@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ae4e34835e566bbcc12bec8f2191b069f307ece2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06d3af5cfd1e122087c0acafdd7909edce4ad1d7 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index d908da5cbfbb..4aa64fc5c28a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "ae4e34835e566bbcc12bec8f2191b069f307ece2", + commit = "06d3af5cfd1e122087c0acafdd7909edce4ad1d7", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 7f965bf03210..5e15b2ed3096 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.2", + "@angular/animations": "20.2.3", "@angular/cdk": "20.2.1", - "@angular/common": "20.2.2", - "@angular/compiler": "20.2.2", - "@angular/compiler-cli": "20.2.2", - "@angular/core": "20.2.2", - "@angular/forms": "20.2.2", - "@angular/localize": "20.2.2", + "@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#93fe86fed6afb1e19a3edb518b1f09de6f9305b4", - "@angular/platform-browser": "20.2.2", - "@angular/platform-server": "20.2.2", - "@angular/router": "20.2.2", - "@angular/service-worker": "20.2.2", + "@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", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index a73829538b0f..79dc4f537f31 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.2", - "@angular/compiler": "20.2.2", - "@angular/core": "20.2.2", - "@angular/platform-browser": "20.2.2", - "@angular/platform-server": "20.2.2", - "@angular/router": "20.2.2", + "@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", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 3d185e74afef..29ba7c8a259a 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.2", - "@angular/compiler-cli": "20.2.2", + "@angular/compiler": "20.2.3", + "@angular/compiler-cli": "20.2.3", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d04a0866fe5..3a4bd2cb783b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) + 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/cdk': specifier: 20.2.1 - version: 20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + 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) '@angular/common': - specifier: 20.2.2 - version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + 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) '@angular/compiler': - specifier: 20.2.2 - version: 20.2.2 + specifier: 20.2.3 + version: 20.2.3 '@angular/compiler-cli': - specifier: 20.2.2 - version: 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) + specifier: 20.2.3 + version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) '@angular/core': - specifier: 20.2.2 - version: 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.3 + version: 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + 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) '@angular/localize': - specifier: 20.2.2 - version: 20.2.2(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2) + 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) '@angular/material': specifier: 20.2.1 - version: 20.2.1(a32bc00dd6da13143170591662d3798d) + version: 20.2.1(db7b32723760b0ee941b26d324534a22) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#93fe86fed6afb1e19a3edb518b1f09de6f9305b4 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4(@modelcontextprotocol/sdk@1.17.3) + 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) '@angular/platform-browser': - specifier: 20.2.2 - version: 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) + 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)) '@angular/platform-server': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + 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) '@angular/router': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + 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) '@angular/service-worker': - specifier: 20.2.2 - version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + 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) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + 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) 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.2 - version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + 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) '@angular/compiler': - specifier: 20.2.2 - version: 20.2.2 + specifier: 20.2.3 + version: 20.2.3 '@angular/core': - specifier: 20.2.2 - version: 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.2.3 + version: 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.2.2 - version: 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) + 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)) '@angular/platform-server': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + 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) '@angular/router': - specifier: 20.2.2 - version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + 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) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + 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) 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.2 - version: 20.2.2 + specifier: 20.2.3 + version: 20.2.3 '@angular/compiler-cli': - specifier: 20.2.2 - version: 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) + specifier: 20.2.3 + version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,12 +975,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.2': - resolution: {integrity: sha512-DaTDth1EkwFRPc4sxKr4dj4+uOZur03HBxpD0aRLXqO1USVblCgtRRU8OJ+nNKFJICViXkXT2IVEq/avpt9ijg==} + '@angular/animations@20.2.3': + resolution: {integrity: sha512-cyON3oVfaotz8d8DHP3uheC/XDG2gJD8aiyuG/SEAZ2X1S/tAHdVetESbDZM830lLdi+kB/3GBrMbWCCpMWD7Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.2 - '@angular/core': 20.2.2 + '@angular/common': 20.2.3 + '@angular/core': 20.2.3 '@angular/cdk@20.2.1': resolution: {integrity: sha512-yEPh5hr9LZW4ey/HxtaGdSBDIkNzziLo0Dr1RP8JcxhOQ2Bzv2PZ+g8jC6aPGD7NPV8FtDf0FhTEzQr+m+gBXQ==} @@ -989,33 +989,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.2': - resolution: {integrity: sha512-8i7cytly2h1sgoaEx3+H7/Xrq2KEBnAi0nDG1URv0esmyeMYJ2kycBXF2EDbnbzBhZAPw7++kTf5jng+bhTsiw==} + '@angular/common@20.2.3': + resolution: {integrity: sha512-QLffWL8asy2oG7p3jvoNmx9s1V1WuJAm6JmQ1S8J3AN/BxumCJan49Nj8rctP8J4uwJDPQV48hqbXUdl1v7CDg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.2 + '@angular/core': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.2': - resolution: {integrity: sha512-4amAz9/GeYPGBeNGnelxPllQZXG/ttj+t1dwZ7AODXkxipR6P26Vg3Qma90bxsjUmgl5Mfcijy4bUh/isBGi5g==} + '@angular/compiler-cli@20.2.3': + resolution: {integrity: sha512-adLyPXmKbH8VZJCyOraaha+RPTdAjEBRTqwZ5YkjkViTMMANFkuj1w3pDwQsG3LFknRJ99aym+9neGINeAaI7A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.2 + '@angular/compiler': 20.2.3 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.2': - resolution: {integrity: sha512-gHZFSAVVzH/rOvZGglf5AGkk6iQgZXqgFzoThSXe+Do4XIkdeaZPVgc/3AmoHk50gAD85C90eXSjlvp/N1djRg==} + '@angular/compiler@20.2.3': + resolution: {integrity: sha512-vYGDluko8zAIWhQmKijhcGO0tzanwGONDRgbJ01mCqUsQV+XwmDgUUDZKrUY9uve0wxxM3Xvo4/BjEpGpeG75w==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.2.2': - resolution: {integrity: sha512-FZFVh2pI4mI7rr8tTVfrC2c1yOjgTrZy3BFaLSTArS4TgNxy30fLKQ9w3JkuxfllDSckPLyft/EaKcW1pxgHAw==} + '@angular/core@20.2.3': + resolution: {integrity: sha512-pFMfg11X8SNNZHcLa+wy4y+eAN3FApt+wPzaxkaXaJ64c+tyHcrPNLotoWgE0jmiw8Idn4gGjKAL/WC0uw5dQA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.2 + '@angular/compiler': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1024,22 +1024,22 @@ packages: zone.js: optional: true - '@angular/forms@20.2.2': - resolution: {integrity: sha512-61xMJfKql9F2q+8bm+AlIPy36ETyYuBIxGwP7q/w5Rjv+GlfXVVddq4DI2RiaK/MwgYljtuwf1+aoXz4dlNriw==} + '@angular/forms@20.2.3': + resolution: {integrity: sha512-efMn/Hnspg91SzRTm69WpyGq0dgbCtWqUOrR0iZXTR/oDlJw9F/y/nrST36tOBwRNT0QQ2iU5z43iJY1Rl1Bng==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.2 - '@angular/core': 20.2.2 - '@angular/platform-browser': 20.2.2 + '@angular/common': 20.2.3 + '@angular/core': 20.2.3 + '@angular/platform-browser': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.2': - resolution: {integrity: sha512-UZyY68e94gXONPDOQT5To7tIxuvXdx7W+l6ckNRzGzWqS3b48e74gjwuhxmcYwPJJLAlQmgj2HJzzby8RhGn4Q==} + '@angular/localize@20.2.3': + resolution: {integrity: sha512-+r7VbxuaOwUuvC1xPfuNpJSbwv4+LOUouVZhBq5sp2qYrKkVw2QZaIbd6uPTE1NWbu7rGwSGVw4rTx4LvA3fYw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.2 - '@angular/compiler-cli': 20.2.2 + '@angular/compiler': 20.2.3 + '@angular/compiler-cli': 20.2.3 '@angular/material@20.2.1': resolution: {integrity: sha512-Zv1ay/eSwO9e2xUrPKOQFSKscb0+0bhZmDwy9etQhder0FBh380iizP+PaZnJGGy87zYDmauv0fjKcDfdWCJYA==} @@ -1051,47 +1051,47 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4} - version: 0.0.0-ae4e34835e566bbcc12bec8f2191b069f307ece2 + '@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 hasBin: true - '@angular/platform-browser@20.2.2': - resolution: {integrity: sha512-Il0AibFdZPK4PRhnMomURld/9k0+lJElO1/+lSeYqlOYFcIV8BUrsBsWcDYgDMs71eJiw63EReffADvpEQI4WA==} + '@angular/platform-browser@20.2.3': + resolution: {integrity: sha512-oNaRqcGUve+E/CwR9fJb8uern5rb7qNOis1bZRdPXq5rHKaWgDCxUPkoqxRi0EytorntuYsWYPUPW3ul4Ea9tw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.2.2 - '@angular/common': 20.2.2 - '@angular/core': 20.2.2 + '@angular/animations': 20.2.3 + '@angular/common': 20.2.3 + '@angular/core': 20.2.3 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.2': - resolution: {integrity: sha512-utl/0ueG1IW0bIAeIdwttePe62uXg6ZRRuvim4mZt3M9/kJ+1a4RAZVOEXet9lHSn4VpbHNvXg3yC7WZwHx7yQ==} + '@angular/platform-server@20.2.3': + resolution: {integrity: sha512-KswW/6KX4Av8WdiJLIVElqi4f7RIcIrcnkRRYrVm2UUHEpH+W94LkMMN9ybACmGSArg0j5DlfyJtotZefwFtzQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.2 - '@angular/compiler': 20.2.2 - '@angular/core': 20.2.2 - '@angular/platform-browser': 20.2.2 + '@angular/common': 20.2.3 + '@angular/compiler': 20.2.3 + '@angular/core': 20.2.3 + '@angular/platform-browser': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.2': - resolution: {integrity: sha512-Bi+HS8x6eOTLSt6gt+o+llcACwXc0abnc52gamCPr0oWC+Z/fTWDZDPnkCqdxQkscJO6uoB16BRuG6Cfgvuarg==} + '@angular/router@20.2.3': + resolution: {integrity: sha512-r8yGJcxHPfeIHZOoyCxN2H4nMgBD/k4TVTFaq8MHf5ryy1iLzayIMPJTFaZe7xpwlJJuBYEjBrYfUN38fYKWgA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.2.2 - '@angular/core': 20.2.2 - '@angular/platform-browser': 20.2.2 + '@angular/common': 20.2.3 + '@angular/core': 20.2.3 + '@angular/platform-browser': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.2': - resolution: {integrity: sha512-XmNnaq5H+pSxoYdnMWJ8Q9V+r/W47PiwJw3rLicyL4ZaBJ1/0wQXV/iquJdIA+QAkNKfAH//7QXLUS8aGjSahQ==} + '@angular/service-worker@20.2.3': + resolution: {integrity: sha512-h3f44QBCEuC7FoKT0FH+PDW4VFqdsImn6PuGjXFEjMe7D8gcV9HK8aeYMCcvAJetWSqaG5hdDHO4gNoZgQV9Zg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.2 + '@angular/core': 20.2.3 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -1882,8 +1882,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@firebase/ai@2.1.0': - resolution: {integrity: sha512-4HvFr4YIzNFh0MowJLahOjJDezYSTjQar0XYVu/sAycoxQ+kBsfXuTPRLVXCYfMR5oNwQgYe4Q2gAOYKKqsOyA==} + '@firebase/ai@2.2.1': + resolution: {integrity: sha512-0VWlkGB18oDhwMqsgxpt/usMsyjnH3a7hTvQPcAbk7VhFg0QZMDX60mQKfLTFKrB5VwmlaIdVsSZznsTY2S0wA==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -1920,15 +1920,15 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/app-compat@0.5.1': - resolution: {integrity: sha512-BEy1L6Ufd85ZSP79HDIv0//T9p7d5Bepwy+2mKYkgdXBGKTbFm2e2KxyF1nq4zSQ6RRBxWi0IY0zFVmoBTZlUA==} + '@firebase/app-compat@0.5.2': + resolution: {integrity: sha512-cn+U27GDaBS/irsbvrfnPZdcCzeZPRGKieSlyb7vV6LSOL6mdECnB86PgYjYGxSNg8+U48L/NeevTV1odU+mOQ==} engines: {node: '>=20.0.0'} '@firebase/app-types@0.9.3': resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - '@firebase/app@0.14.1': - resolution: {integrity: sha512-jxTrDbxnGoX7cGz7aP9E7v9iKvBbQfZ8Gz4TH3SfrrkcyIojJM3+hJnlbGnGxHrABts844AxRcg00arMZEyA6Q==} + '@firebase/app@0.14.2': + resolution: {integrity: sha512-Ecx2ig/JLC9ayIQwZHqm41Tzlf4c1WUuFhFUZB1y+JIJqDRE579x7Uil7tKT8MwDpOPwrK5ZtpxdSsrfy/LF8Q==} engines: {node: '>=20.0.0'} '@firebase/auth-compat@0.6.0': @@ -1976,8 +1976,8 @@ packages: resolution: {integrity: sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==} engines: {node: '>=20.0.0'} - '@firebase/firestore-compat@0.4.0': - resolution: {integrity: sha512-4O7v4VFeSEwAZtLjsaj33YrMHMRjplOIYC2CiYsF6o/MboOhrhe01VrTt8iY9Y5EwjRHuRz4pS6jMBT8LfQYJA==} + '@firebase/firestore-compat@0.4.1': + resolution: {integrity: sha512-BjalPTDh/K0vmR/M/DE148dpIqbcfvtFVTietbUDWDWYIl9YH0TTVp/EwXRbZwswPxyjx4GdHW61GB2AYVz1SQ==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app-compat': 0.x @@ -1988,14 +1988,14 @@ packages: '@firebase/app-types': 0.x '@firebase/util': 1.x - '@firebase/firestore@4.9.0': - resolution: {integrity: sha512-5zl0+/h1GvlCSLt06RMwqFsd7uqRtnNZt4sW99k2rKRd6k/ECObIWlEnvthm2cuOSnUmwZknFqtmd1qyYSLUuQ==} + '@firebase/firestore@4.9.1': + resolution: {integrity: sha512-PYVUTkhC9y8pydrqC3O1Oc4AMfkGSWdmuH9xgPJjiEbpUIUPQ4J8wJhyuash+o2u+axmyNRFP8ULNUKb+WzBzQ==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x - '@firebase/functions-compat@0.4.0': - resolution: {integrity: sha512-VPgtvoGFywWbQqtvgJnVWIDFSHV1WE6Hmyi5EGI+P+56EskiGkmnw6lEqc/MEUfGpPGdvmc4I9XMU81uj766/g==} + '@firebase/functions-compat@0.4.1': + resolution: {integrity: sha512-AxxUBXKuPrWaVNQ8o1cG1GaCAtXT8a0eaTDfqgS5VsRYLAR0ALcfqDLwo/QyijZj1w8Qf8n3Qrfy/+Im245hOQ==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app-compat': 0.x @@ -2003,8 +2003,8 @@ packages: '@firebase/functions-types@0.6.3': resolution: {integrity: sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==} - '@firebase/functions@0.13.0': - resolution: {integrity: sha512-2/LH5xIbD8aaLOWSFHAwwAybgSzHIM0dB5oVOL0zZnxFG1LctX2bc1NIAaPk1T+Zo9aVkLKUlB5fTXTkVUQprQ==} + '@firebase/functions@0.13.1': + resolution: {integrity: sha512-sUeWSb0rw5T+6wuV2o9XNmh9yHxjFI9zVGFnjFi+n7drTEWpl7ZTz1nROgGrSu472r+LAaj+2YaSicD4R8wfbw==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -5291,8 +5291,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase@12.1.0: - resolution: {integrity: sha512-oZucxvfWKuAW4eHHRqGKzC43fLiPqPwHYBHPRNsnkgonqYaq0VurYgqgBosRlEulW+TWja/5Tpo2FpUU+QrfEQ==} + firebase@12.2.1: + resolution: {integrity: sha512-UkuW2ZYaq/QuOQ24bfaqmkVqoBFhkA/ptATfPuRtc5vdm+zhwc3mfZBwFe6LqH9yrCN/6rAblgxKz2/0tDvA7w==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -9096,29 +9096,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))': + '@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))': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(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) tslib: 2.8.1 - '@angular/cdk@20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@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)': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(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) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(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)': dependencies: - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2)': + '@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.2 + '@angular/compiler': 20.2.3 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9132,30 +9132,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.2': + '@angular/compiler@20.2.3': dependencies: tslib: 2.8.1 - '@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.2.2 + '@angular/compiler': 20.2.3 zone.js: 0.15.1 - '@angular/forms@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@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)': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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.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 tslib: 2.8.1 - '@angular/localize@20.2.2(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2)': + '@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)': dependencies: - '@angular/compiler': 20.2.2 - '@angular/compiler-cli': 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) + '@angular/compiler': 20.2.3 + '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9163,17 +9163,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.1(a32bc00dd6da13143170591662d3798d)': + '@angular/material@20.2.1(db7b32723760b0ee941b26d324534a22)': dependencies: - '@angular/cdk': 20.2.1(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.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/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)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/93fe86fed6afb1e19a3edb518b1f09de6f9305b4(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b991414e4f3ed15d99f4331b5353499434878374(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.0) @@ -9214,7 +9214,7 @@ snapshots: ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 - firebase: 12.1.0 + 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 @@ -9236,35 +9236,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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))': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(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) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@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/platform-server@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@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)': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.2 - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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/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 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@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)': dependencies: - '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.2(@angular/animations@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(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.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 tslib: 2.8.1 - '@angular/service-worker@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@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)': dependencies: - '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.2.3(@angular/compiler@20.2.3)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -10151,9 +10151,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@firebase/ai@2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': + '@firebase/ai@2.2.1(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/app-check-interop-types': 0.3.3 '@firebase/app-types': 0.9.3 '@firebase/component': 0.7.0 @@ -10161,11 +10161,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.2) '@firebase/analytics-types': 0.8.3 - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10174,20 +10174,20 @@ snapshots: '@firebase/analytics-types@0.8.3': {} - '@firebase/analytics@0.10.18(@firebase/app@0.14.1)': + '@firebase/analytics@0.10.18(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) + '@firebase/app-check': 0.11.0(@firebase/app@0.14.2) '@firebase/app-check-types': 0.5.3 - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10199,17 +10199,17 @@ snapshots: '@firebase/app-check-types@0.5.3': {} - '@firebase/app-check@0.11.0(@firebase/app@0.14.1)': + '@firebase/app-check@0.11.0(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-compat@0.5.1': + '@firebase/app-compat@0.5.2': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10217,7 +10217,7 @@ snapshots: '@firebase/app-types@0.9.3': {} - '@firebase/app@0.14.1': + '@firebase/app@0.14.2': dependencies: '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10225,10 +10225,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': + '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 - '@firebase/auth': 1.11.0(@firebase/app@0.14.1) + '@firebase/app-compat': 0.5.2 + '@firebase/auth': 1.11.0(@firebase/app@0.14.2) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 @@ -10245,9 +10245,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/auth@1.11.0(@firebase/app@0.14.1)': + '@firebase/auth@1.11.0(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10258,9 +10258,9 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/data-connect@0.3.11(@firebase/app@0.14.1)': + '@firebase/data-connect@0.3.11(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10291,11 +10291,11 @@ snapshots: faye-websocket: 0.11.4 tslib: 2.8.1 - '@firebase/firestore-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': + '@firebase/firestore-compat@0.4.1(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) + '@firebase/firestore': 4.9.1(@firebase/app@0.14.2) '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10308,9 +10308,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/firestore@4.9.0(@firebase/app@0.14.1)': + '@firebase/firestore@4.9.1(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10319,11 +10319,11 @@ snapshots: '@grpc/proto-loader': 0.7.15 tslib: 2.8.1 - '@firebase/functions-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/functions-compat@0.4.1(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 - '@firebase/functions': 0.13.0(@firebase/app@0.14.1) + '@firebase/functions': 0.13.1(@firebase/app@0.14.2) '@firebase/functions-types': 0.6.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10332,9 +10332,9 @@ snapshots: '@firebase/functions-types@0.6.3': {} - '@firebase/functions@0.13.0(@firebase/app@0.14.1)': + '@firebase/functions@0.13.1(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/app-check-interop-types': 0.3.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 @@ -10342,11 +10342,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': + '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10358,9 +10358,9 @@ snapshots: dependencies: '@firebase/app-types': 0.9.3 - '@firebase/installations@0.6.19(@firebase/app@0.14.1)': + '@firebase/installations@0.6.19(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 idb: 7.1.1 @@ -10370,11 +10370,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 - '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.2) '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: @@ -10382,22 +10382,22 @@ snapshots: '@firebase/messaging-interop-types@0.2.3': {} - '@firebase/messaging@0.12.23(@firebase/app@0.14.1)': + '@firebase/messaging@0.12.23(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) '@firebase/messaging-interop-types': 0.2.3 '@firebase/util': 1.13.0 idb: 7.1.1 tslib: 2.8.1 - '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/performance': 0.7.9(@firebase/app@0.14.1) + '@firebase/performance': 0.7.9(@firebase/app@0.14.2) '@firebase/performance-types': 0.2.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10406,22 +10406,22 @@ snapshots: '@firebase/performance-types@0.2.3': {} - '@firebase/performance@0.7.9(@firebase/app@0.14.1)': + '@firebase/performance@0.7.9(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 web-vitals: 4.2.4 - '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1)': + '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.2) '@firebase/remote-config-types': 0.4.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10430,20 +10430,20 @@ snapshots: '@firebase/remote-config-types@0.4.0': {} - '@firebase/remote-config@0.6.6(@firebase/app@0.14.1)': + '@firebase/remote-config@0.6.6(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1)': + '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': dependencies: - '@firebase/app-compat': 0.5.1 + '@firebase/app-compat': 0.5.2 '@firebase/component': 0.7.0 - '@firebase/storage': 0.14.0(@firebase/app@0.14.1) + '@firebase/storage': 0.14.0(@firebase/app@0.14.2) '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10456,9 +10456,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/storage@0.14.0(@firebase/app@0.14.1)': + '@firebase/storage@0.14.0(@firebase/app@0.14.2)': dependencies: - '@firebase/app': 0.14.1 + '@firebase/app': 0.14.2 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -14205,35 +14205,35 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase@12.1.0: + firebase@12.2.1: dependencies: - '@firebase/ai': 2.1.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) - '@firebase/analytics': 0.10.18(@firebase/app@0.14.1) - '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/app': 0.14.1 - '@firebase/app-check': 0.11.0(@firebase/app@0.14.1) - '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/app-compat': 0.5.1 + '@firebase/ai': 2.2.1(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.2) + '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/app': 0.14.2 + '@firebase/app-check': 0.11.0(@firebase/app@0.14.2) + '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/app-compat': 0.5.2 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.1) - '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) - '@firebase/data-connect': 0.3.11(@firebase/app@0.14.1) + '@firebase/auth': 1.11.0(@firebase/app@0.14.2) + '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) + '@firebase/data-connect': 0.3.11(@firebase/app@0.14.2) '@firebase/database': 1.1.0 '@firebase/database-compat': 2.1.0 - '@firebase/firestore': 4.9.0(@firebase/app@0.14.1) - '@firebase/firestore-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) - '@firebase/functions': 0.13.0(@firebase/app@0.14.1) - '@firebase/functions-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/installations': 0.6.19(@firebase/app@0.14.1) - '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) - '@firebase/messaging': 0.12.23(@firebase/app@0.14.1) - '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/performance': 0.7.9(@firebase/app@0.14.1) - '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.1) - '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.1)(@firebase/app@0.14.1) - '@firebase/storage': 0.14.0(@firebase/app@0.14.1) - '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.1)(@firebase/app-types@0.9.3)(@firebase/app@0.14.1) + '@firebase/firestore': 4.9.1(@firebase/app@0.14.2) + '@firebase/firestore-compat': 0.4.1(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) + '@firebase/functions': 0.13.1(@firebase/app@0.14.2) + '@firebase/functions-compat': 0.4.1(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.2) + '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/performance': 0.7.9(@firebase/app@0.14.2) + '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/remote-config': 0.6.6(@firebase/app@0.14.2) + '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) + '@firebase/storage': 0.14.0(@firebase/app@0.14.2) + '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) '@firebase/util': 1.13.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -15857,10 +15857,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.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): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2) + '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.48.1 ajv: 8.17.1 From 9467f8ccd0a83fa258991524644efb4b42e0d914 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:46:06 -0400 Subject: [PATCH 077/228] refactor(@angular/cli): rewrite best-practices MCP tool description for clarity The description for the `onpush-zoneless-migration` MCP tool is rewritten to use a structured format with ``, ``, and `` tags. (cherry picked from commit fd89fe475c1d196ab5290fb44670c3cf58e3e9d1) --- .../zoneless-migration.ts | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts index 6863e3454318..3c7467bfdb23 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.ts @@ -23,11 +23,33 @@ import { createSourceFile, getImportSpecifier } from './ts_utils'; export const ZONELESS_MIGRATION_TOOL = declareTool({ name: 'onpush-zoneless-migration', title: 'Plan migration to OnPush and/or zoneless', - description: - '**Required tool for migrating Angular components to OnPush change detection or zoneless.**' + - ' This tool orchestrates the entire migration process, including running prerequisite migrations' + - ' for signal inputs and queries. Use this tool as the first step before making any manual changes' + - ' to adopt `ChangeDetectionStrategy.OnPush` or `provideZonelessChangeDetection`.', + description: ` + +Analyzes Angular code and provides a step-by-step, iterative plan to migrate it to \`OnPush\` +change detection, a prerequisite for a zoneless application. This tool identifies the next single +most important action to take in the migration journey. + + +* **Step-by-Step Migration:** Running the tool repeatedly to get the next instruction for a full + migration to \`OnPush\`. +* **Pre-Migration Analysis:** Checking a component or directory for unsupported \`NgZone\` APIs that + would block a zoneless migration. +* **Generating Component Migrations:** Getting the exact instructions for converting a single + component from the default change detection strategy to \`OnPush\`. + + +* **Execution Model:** This tool **DOES NOT** modify code. It **PROVIDES INSTRUCTIONS** for a + single action at a time. You **MUST** apply the changes it suggests, and then run the tool + again to get the next step. +* **Iterative Process:** The migration process is iterative. You must call this tool repeatedly, + applying the suggested fix after each call, until the tool indicates that no more actions are + needed. +* **Relationship to \`modernize\`:** This tool is the specialized starting point for the zoneless/OnPush + migration. For other migrations (like signal inputs), you should use the \`modernize\` tool first, + as the zoneless migration may depend on them as prerequisites. +* **Input:** The tool can operate on either a single file or an entire directory. Provide the + absolute path. +`, isReadOnly: true, isLocalOnly: true, inputSchema: { From 44c20a5cbb6a1bba4c8bc31bffda6764fcb08d1e Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Aug 2025 20:01:59 -0400 Subject: [PATCH 078/228] refactor(@angular/cli): add structured output to examples MCP tool The `find_examples` MCP tool is updated to frame it as a RAG (Retrieval-Augmented Generation) source, focusing on modern and recently updated Angular features. The tool's description is rewritten to guide the AI on when to use this tool versus the documentation search. A structured output schema is also added to make the results more reliable, and the handler is updated to return data in the new format. (cherry picked from commit eece201b5ad21e90985daab3f01d58d7a2ef1d29) --- .../cli/src/commands/mcp/tools/examples.ts | 53 ++++++++++++++----- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/examples.ts b/packages/angular/cli/src/commands/mcp/tools/examples.ts index 0690be04f523..21cacd5454c5 100644 --- a/packages/angular/cli/src/commands/mcp/tools/examples.ts +++ b/packages/angular/cli/src/commands/mcp/tools/examples.ts @@ -42,16 +42,39 @@ type FindExampleInput = z.infer; export const FIND_EXAMPLE_TOOL = declareTool({ name: 'find_examples', title: 'Find Angular Code Examples', - description: - 'Before writing or modifying any Angular code including templates, ' + - '**ALWAYS** use this tool to find current best-practice examples. ' + - 'This is critical for ensuring code quality and adherence to modern Angular standards. ' + - 'This tool searches a curated database of approved Angular code examples and returns the most relevant results for your query. ' + - 'Example Use Cases: ' + - "1) Creating new components, directives, or services (e.g., query: 'standalone component' or 'signal input'). " + - "2) Implementing core features (e.g., query: 'lazy load route', 'httpinterceptor', or 'route guard'). " + - "3) Refactoring existing code to use modern patterns (e.g., query: 'ngfor trackby' or 'form validation').", + description: ` + +Augments your knowledge base with a curated database of official, best-practice code examples, +focusing on **modern, new, and recently updated** Angular features. This tool acts as a RAG +(Retrieval-Augmented Generation) source, providing ground-truth information on the latest Angular +APIs and patterns. You **MUST** use it to understand and apply current standards when working with +new or evolving features. + + +* **Knowledge Augmentation:** Learning about new or updated Angular features (e.g., query: 'signal input' or 'deferrable views'). +* **Modern Implementation:** Finding the correct modern syntax for features + (e.g., query: 'functional route guard' or 'http client with fetch'). +* **Refactoring to Modern Patterns:** Upgrading older code by finding examples of new syntax + (e.g., query: 'built-in control flow' to replace "*ngIf'). + + +* **Tool Selection:** This database primarily contains examples for new and recently updated Angular + features. For established, core features, the main documentation (via the + \`search_documentation\` tool) may be a better source of information. +* The examples in this database are the single source of truth for modern Angular coding patterns. +* The search query uses a powerful full-text search syntax (FTS5). Refer to the 'query' + parameter description for detailed syntax rules and examples. +`, inputSchema: findExampleInputSchema.shape, + outputSchema: { + examples: z.array( + z.object({ + content: z + .string() + .describe('A complete, self-contained Angular code example in Markdown format.'), + }), + ), + }, isReadOnly: true, isLocalOnly: true, shouldRegister: ({ logger }) => { @@ -96,14 +119,18 @@ async function createFindExampleHandler({ exampleDatabasePath }: McpToolContext) const sanitizedQuery = escapeSearchQuery(query); - // Query database and return results as text content - const content = []; + // Query database and return results + const examples = []; + const textContent = []; for (const exampleRecord of queryStatement.all(sanitizedQuery)) { - content.push({ type: 'text' as const, text: exampleRecord['content'] as string }); + const exampleContent = exampleRecord['content'] as string; + examples.push({ content: exampleContent }); + textContent.push({ type: 'text' as const, text: exampleContent }); } return { - content, + content: textContent, + structuredContent: { examples }, }; }; } From 15242626cbad9f281fb57beafe9d2ea7fd307285 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 28 Aug 2025 20:07:55 -0400 Subject: [PATCH 079/228] refactor(@angular/cli): rewrite best-practices MCP tool description for clarity The description for the `get_best_practices` MCP tool is rewritten to use a structured format with ``, ``, and `` tags. This change makes the tool's purpose and mandatory nature clearer and more actionable for an AI model, ensuring it understands the importance of adhering to the official Angular Best Practices Guide. (cherry picked from commit 33835d913aba910acfbf66a2a7186ac8391cba97) --- .../src/commands/mcp/tools/best-practices.ts | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts index b5b207ea3b08..4d9e74ac34b6 100644 --- a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts +++ b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts @@ -13,12 +13,21 @@ import { declareTool } from './tool-registry'; export const BEST_PRACTICES_TOOL = declareTool({ name: 'get_best_practices', title: 'Get Angular Coding Best Practices Guide', - description: - 'You **MUST** use this tool to retrieve the Angular Best Practices Guide ' + - 'before any interaction with Angular code (creating, analyzing, modifying). ' + - 'It is mandatory to follow this guide to ensure all code adheres to ' + - 'modern standards, including standalone components, typed forms, and ' + - 'modern control flow. This is the first step for any Angular task.', + description: ` + +Retrieves the official Angular Best Practices Guide. This guide contains the essential rules and conventions +that **MUST** be followed for any task involving the creation, analysis, or modification of Angular code. + + +* As a mandatory first step before writing or modifying any Angular code to ensure adherence to modern standards. +* To learn about key concepts like standalone components, typed forms, and modern control flow syntax (@if, @for, @switch). +* To verify that existing code aligns with current Angular conventions before making changes. + + +* The content of this guide is non-negotiable and reflects the official, up-to-date standards for Angular development. +* You **MUST** internalize and apply the principles from this guide in all subsequent Angular-related tasks. +* Failure to adhere to these best practices will result in suboptimal and outdated code. +`, isReadOnly: true, isLocalOnly: true, factory: () => { From 2d8b6f64439ac914a5bb19471fa2f511298ecf09 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 1 Sep 2025 10:05:19 +0000 Subject: [PATCH 080/228] build: update pnpm to v10.15.1 See associated pull request for more information. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e15b2ed3096..c50bd587846a 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.15.0", + "packageManager": "pnpm@10.15.1", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", From 269fd9999526c3423cc7ebd308faae09b1960ac1 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 2 Sep 2025 10:05:37 +0000 Subject: [PATCH 081/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 326 ++++++++++++++++++++++++------------------------- 1 file changed, 163 insertions(+), 163 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a4bd2cb783b..fc301efb79fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,7 +90,7 @@ importers: version: 16.0.1(rollup@4.46.2) '@stylistic/eslint-plugin': specifier: ^5.0.0 - version: 5.2.3(eslint@9.33.0(jiti@1.21.7)) + version: 5.3.1(eslint@9.33.0(jiti@1.21.7)) '@types/babel__core': specifier: 7.20.5 version: 7.20.5 @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.17.2 + version: 22.18.0 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.17.2)(rollup@4.46.2) + version: 0.5.3(@types/node@22.18.0)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.4.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.17.2)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.0)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.25.3 + version: 4.25.4 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 - version: 4.25.3 + version: 4.25.4 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -1666,14 +1666,14 @@ packages: resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} - '@emnapi/core@1.4.5': - resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} + '@emnapi/core@1.5.0': + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - '@emnapi/runtime@1.4.5': - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - '@emnapi/wasi-threads@1.0.4': - resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} '@esbuild/aix-ppc64@0.25.9': resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} @@ -2628,8 +2628,8 @@ packages: resolution: {integrity: sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==} engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/promise-spawn@8.0.2': - resolution: {integrity: sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==} + '@npmcli/promise-spawn@8.0.3': + resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==} engines: {node: ^18.17.0 || >=20.5.0} '@npmcli/redact@3.2.2': @@ -2891,8 +2891,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.7': - resolution: {integrity: sha512-wHWLkQWBjHtajZeqCB74nsa/X70KheyOhySYBRmVQDJiNj0zjZR/naPCvdWjMhcG1LmjaMV/9WtTo5mpe8qWLw==} + '@puppeteer/browsers@2.10.8': + resolution: {integrity: sha512-f02QYEnBDE0p8cteNoPYHHjbDuwyfbe4cCIVlNi8/MRicIxFW4w4CfgU0LNgWEID6s06P+hRJ1qjpBLMhPRCiQ==} engines: {node: '>=18'} hasBin: true @@ -3123,8 +3123,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.48.1': - resolution: {integrity: sha512-BGNxbwNHAwBj82DwDHc6Yia1bOs2NP1gvF181l7HYEUGfq8EoFkzr+S6sbuF2j5TXQHWbl/ev1g4kU7ZN4QSPw==} + '@rollup/wasm-node@4.50.0': + resolution: {integrity: sha512-mCzoNeR8ynLTHJ5VQ9J/GzSKPJjEC4/nCmGw2y3NSCZoc4sbSVdNe5x4S7+bda6QIEUrk6lR1FE7FEDo+p/u1Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3158,8 +3158,8 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@stylistic/eslint-plugin@5.2.3': - resolution: {integrity: sha512-oY7GVkJGVMI5benlBDCaRrSC1qPasafyv5dOBLLv5MTilMGnErKhO6ziEfodDDIZbo5QxPUNW360VudJOFODMw==} + '@stylistic/eslint-plugin@5.3.1': + resolution: {integrity: sha512-Ykums1VYonM0TgkD0VteVq9mrlO2FhF48MDJnPyv3MktIB2ydtuhlO0AfWm7xnW1kyf5bjOqA6xc7JjviuVTxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' @@ -3372,8 +3372,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.17.2': - resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} + '@types/node@22.18.0': + resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} '@types/node@24.3.0': resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} @@ -3535,8 +3535,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.40.0': - resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} + '@typescript-eslint/types@8.41.0': + resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -4077,8 +4077,8 @@ packages: bare-events@2.6.1: resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.2.1: - resolution: {integrity: sha512-mELROzV0IhqilFgsl1gyp48pnZsaV9xhQapHLDsvn4d4ZTfbFhcghQezl7FTEDNBcGqLUnNI3lUlm6ecrLWdFA==} + bare-fs@4.2.2: + resolution: {integrity: sha512-5vn+bdnlCYMwETIm1FqQXDP6TYPbxr2uJd88ve40kr4oPbiTZJVrTNzqA3/4sfWZeWKuQR/RkboBt7qEEDtfMA==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4198,8 +4198,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.25.3: - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} + browserslist@4.25.4: + resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4272,8 +4272,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001737: - resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==} + caniuse-lite@1.0.30001739: + resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4866,11 +4866,11 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.208: - resolution: {integrity: sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==} + electron-to-chromium@1.5.212: + resolution: {integrity: sha512-gE7ErIzSW+d8jALWMcOIgf+IB6lpfsg6NwOhPVwKzDtN2qcBix47vlin4yzSregYDxTCXOUqAZjVY/Z3naS7ww==} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@10.5.0: + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5143,9 +5143,9 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - eventsource-parser@3.0.5: - resolution: {integrity: sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==} - engines: {node: '>=20.0.0'} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} eventsource@3.0.7: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} @@ -5218,8 +5218,8 @@ packages: resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -5417,8 +5417,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + get-east-asian-width@1.3.1: + resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -5507,8 +5507,8 @@ packages: resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==} engines: {node: '>=0.10.0'} - google-auth-library@10.2.1: - resolution: {integrity: sha512-HMxFl2NfeHYnaL1HoRIN1XgorKS+6CDaM+z9LSSN+i/nKDDL4KFFEWogMXu7jV4HZQy2MsxpY+wA5XIf3w410A==} + google-auth-library@10.3.0: + resolution: {integrity: sha512-ylSE3RlCRZfZB56PFJSfUCuiuPq83Fx8hqu1KPWGK8FVdSaxlp/qkeMMX/DT/18xkwXIHvXEXkZsljRwfrdEfQ==} engines: {node: '>=18'} google-auth-library@9.15.1: @@ -5897,8 +5897,8 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} is-generator-function@1.1.0: @@ -6081,8 +6081,8 @@ packages: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} - isbinaryfile@5.0.4: - resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + isbinaryfile@5.0.6: + resolution: {integrity: sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==} engines: {node: '>= 18.0.0'} isexe@2.0.0: @@ -6535,8 +6535,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.38.1: - resolution: {integrity: sha512-exfrOkkU3m0EpbQ0iQJP93HUbkprnIBU7IUnobSNAzHkBUzsklLwENGLEm8ZwJmMuLoFEfv1pYQ54wSpkay4kQ==} + memfs@4.38.2: + resolution: {integrity: sha512-FpWsVHpAkoSh/LfY1BgAl72BVd374ooMRtDi2VqzBycX4XEfvC0XKACCe0C9VRZoYq5viuoyTv6lYXZ/Q7TrLQ==} engines: {node: '>= 4.0.0'} meow@12.1.1: @@ -6838,8 +6838,8 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@11.4.1: - resolution: {integrity: sha512-GiVxQ1e4TdZSSVmFDYUn6uUsrEUP68pa8C/xBzCfL/FcLHa4reWrxxTP7tRGhNdviYrNsL5kRolBL5LNYEutCw==} + node-gyp@11.4.2: + resolution: {integrity: sha512-3gD+6zsrLQH7DyYOUIutaauuXrcyxeTPyQuZQCQoNPZMHMMS5m4y0xclNpvYzoK3VNzuyxT6eF4mkIL4WSZ1eQ==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true @@ -6863,8 +6863,8 @@ packages: resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} - npm-install-checks@7.1.1: - resolution: {integrity: sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==} + npm-install-checks@7.1.2: + resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} engines: {node: ^18.17.0 || >=20.5.0} npm-normalize-package-bin@4.0.0: @@ -7444,8 +7444,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.17.0: - resolution: {integrity: sha512-RYOBKFiF+3RdwIZTEacqNpD567gaFcBAOKTT7742FdB1icXudrPI7BlZbYTYWK2wgGQUXt9Zi1Yn+D5PmCs4CA==} + puppeteer-core@24.18.0: + resolution: {integrity: sha512-As0BvfXxek2MbV0m7iqBmQKFnfSrzSvTM4zGipjd4cL+9f2Ccgut6RvHlc8+qBieKHqCMFy9BSI4QyveoYXTug==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -9320,7 +9320,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.3 + browserslist: 4.25.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -10007,18 +10007,18 @@ snapshots: '@discoveryjs/json-ext@0.6.3': {} - '@emnapi/core@1.4.5': + '@emnapi/core@1.5.0': dependencies: - '@emnapi/wasi-threads': 1.0.4 + '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.5': + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.4': + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 optional: true @@ -10478,7 +10478,7 @@ snapshots: arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.0) html-entities: 2.6.0 retry-request: 8.0.2(supports-color@10.2.0) teeny-request: 10.1.0(supports-color@10.2.0) @@ -10513,7 +10513,7 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.2.1(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.0) google-gax: 5.0.3(supports-color@10.2.0) grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 @@ -10550,7 +10550,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@grpc/proto-loader@0.7.15': dependencies: @@ -10846,7 +10846,7 @@ snapshots: cors: 2.8.5 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.5 + eventsource-parser: 3.0.6 express: 5.1.0 express-rate-limit: 7.5.1(express@5.1.0) pkce-challenge: 5.0.0 @@ -10957,8 +10957,8 @@ snapshots: '@napi-rs/wasm-runtime@1.0.3': dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 '@tybys/wasm-util': 0.10.0 optional: true @@ -10990,7 +10990,7 @@ snapshots: '@npmcli/git@6.0.3': dependencies: - '@npmcli/promise-spawn': 8.0.2 + '@npmcli/promise-spawn': 8.0.3 ini: 5.0.0 lru-cache: 10.4.3 npm-pick-manifest: 10.0.0 @@ -11016,7 +11016,7 @@ snapshots: semver: 7.7.2 validate-npm-package-license: 3.0.4 - '@npmcli/promise-spawn@8.0.2': + '@npmcli/promise-spawn@8.0.3': dependencies: which: 5.0.0 @@ -11026,8 +11026,8 @@ snapshots: dependencies: '@npmcli/node-gyp': 4.0.0 '@npmcli/package-json': 6.2.0 - '@npmcli/promise-spawn': 8.0.2 - node-gyp: 11.4.1 + '@npmcli/promise-spawn': 8.0.3 + node-gyp: 11.4.2 proc-log: 5.0.0 which: 5.0.0 transitivePeerDependencies: @@ -11276,7 +11276,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.7': + '@puppeteer/browsers@2.10.8': dependencies: debug: 4.4.1(supports-color@10.2.0) extract-zip: 2.0.1 @@ -11445,7 +11445,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.48.1': + '@rollup/wasm-node@4.50.0': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11487,10 +11487,10 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@stylistic/eslint-plugin@5.2.3(eslint@9.33.0(jiti@1.21.7))': + '@stylistic/eslint-plugin@5.3.1(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/types': 8.41.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11523,7 +11523,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/babel__code-frame@7.0.6': {} @@ -11553,16 +11553,16 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/serve-static': 1.15.8 chokidar: 3.6.0 @@ -11572,11 +11572,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11584,17 +11584,17 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/content-disposition@0.5.9': {} '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/convert-source-map@2.0.3': {} @@ -11603,11 +11603,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/cors@2.8.19': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/debounce@1.2.4': {} @@ -11615,7 +11615,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/ejs@3.1.5': {} @@ -11635,14 +11635,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -11664,11 +11664,11 @@ snapshots: '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/http-assert@1.5.6': {} @@ -11676,7 +11676,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/ini@4.1.1': {} @@ -11702,7 +11702,7 @@ snapshots: '@types/karma@6.3.9': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11722,13 +11722,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11745,14 +11745,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 - '@types/node@22.17.2': + '@types/node@22.18.0': dependencies: undici-types: 6.21.0 @@ -11764,7 +11764,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11772,11 +11772,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11789,12 +11789,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/q@0.0.32': {} @@ -11815,7 +11815,7 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/serve-index@1.9.4': dependencies: @@ -11824,23 +11824,23 @@ snapshots: '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/stack-trace@0.0.33': {} @@ -11857,17 +11857,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11878,11 +11878,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/ws@8.18.1': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/yargs-parser@21.0.3': {} @@ -11894,7 +11894,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -11958,7 +11958,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.40.0': {} + '@typescript-eslint/types@8.41.0': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12207,7 +12207,7 @@ snapshots: es-module-lexer: 1.7.0 get-stream: 6.0.1 is-stream: 2.0.1 - isbinaryfile: 5.0.4 + isbinaryfile: 5.0.6 koa: 2.16.2 koa-etag: 4.0.0 koa-send: 5.0.1 @@ -12266,7 +12266,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.17.0(bufferutil@4.0.9) + puppeteer-core: 24.18.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12520,7 +12520,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -12684,8 +12684,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.3 - caniuse-lite: 1.0.30001737 + browserslist: 4.25.4 + caniuse-lite: 1.0.30001739 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12737,7 +12737,7 @@ snapshots: bare-events@2.6.1: optional: true - bare-fs@4.2.1: + bare-fs@4.2.2: dependencies: bare-events: 2.6.1 bare-path: 3.0.0 @@ -12919,12 +12919,12 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.25.3: + browserslist@4.25.4: dependencies: - caniuse-lite: 1.0.30001737 - electron-to-chromium: 1.5.208 + caniuse-lite: 1.0.30001739 + electron-to-chromium: 1.5.212 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.3) + update-browserslist-db: 1.1.3(browserslist@4.25.4) browserstack@1.6.1: dependencies: @@ -13005,7 +13005,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001737: {} + caniuse-lite@1.0.30001739: {} caseless@0.12.0: {} @@ -13072,7 +13072,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13285,7 +13285,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.25.3 + browserslist: 4.25.4 core-util-is@1.0.2: {} @@ -13595,9 +13595,9 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.208: {} + electron-to-chromium@1.5.212: {} - emoji-regex@10.4.0: {} + emoji-regex@10.5.0: {} emoji-regex@8.0.0: {} @@ -13634,7 +13634,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.17.2 + '@types/node': 22.18.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13970,11 +13970,11 @@ snapshots: events@3.3.0: {} - eventsource-parser@3.0.5: {} + eventsource-parser@3.0.6: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.5 + eventsource-parser: 3.0.6 execa@5.1.1: dependencies: @@ -14072,7 +14072,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14102,7 +14102,7 @@ snapshots: fast-redact@3.5.0: {} - fast-uri@3.0.6: {} + fast-uri@3.1.0: {} fastq@1.19.1: dependencies: @@ -14375,7 +14375,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.0: {} + get-east-asian-width@1.3.1: {} get-intrinsic@1.3.0: dependencies: @@ -14497,7 +14497,7 @@ snapshots: pify: 2.3.0 pinkie-promise: 2.0.1 - google-auth-library@10.2.1(supports-color@10.2.0): + google-auth-library@10.3.0(supports-color@10.2.0): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 @@ -14527,7 +14527,7 @@ snapshots: '@grpc/proto-loader': 0.8.0 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.2.1(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.0) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 @@ -14922,9 +14922,9 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.3.0 + get-east-asian-width: 1.3.1 is-generator-function@1.1.0: dependencies: @@ -15073,7 +15073,7 @@ snapshots: isbinaryfile@4.0.10: {} - isbinaryfile@5.0.4: {} + isbinaryfile@5.0.6: {} isexe@2.0.0: {} @@ -15170,7 +15170,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15658,7 +15658,7 @@ snapshots: media-typer@1.1.0: {} - memfs@4.38.1: + memfs@4.38.2: dependencies: '@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) @@ -15862,10 +15862,10 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) - '@rollup/wasm-node': 4.48.1 + '@rollup/wasm-node': 4.50.0 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.25.3 + browserslist: 4.25.4 chokidar: 4.0.3 commander: 14.0.0 dependency-graph: 1.0.0 @@ -15929,7 +15929,7 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@11.4.1: + node-gyp@11.4.2: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.2 @@ -15958,7 +15958,7 @@ snapshots: dependencies: npm-normalize-package-bin: 4.0.0 - npm-install-checks@7.1.1: + npm-install-checks@7.1.2: dependencies: semver: 7.7.2 @@ -15984,7 +15984,7 @@ snapshots: npm-pick-manifest@10.0.0: dependencies: - npm-install-checks: 7.1.1 + npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 semver: 7.7.2 @@ -16198,7 +16198,7 @@ snapshots: '@npmcli/git': 6.0.3 '@npmcli/installed-package-contents': 3.0.0 '@npmcli/package-json': 6.2.0 - '@npmcli/promise-spawn': 8.0.2 + '@npmcli/promise-spawn': 8.0.3 '@npmcli/run-script': 9.1.0 cacache: 19.0.1 fs-minipass: 3.0.3 @@ -16454,7 +16454,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.17.2 + '@types/node': 22.18.0 long: 5.3.2 protractor@7.0.0: @@ -16542,9 +16542,9 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.17.0(bufferutil@4.0.9): + puppeteer-core@24.18.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.7 + '@puppeteer/browsers': 2.10.8 chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) debug: 4.4.1(supports-color@10.2.0) devtools-protocol: 0.0.1475386 @@ -16838,12 +16838,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.17.2)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.0)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 rollup@4.46.2: dependencies: @@ -17172,7 +17172,7 @@ snapshots: slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 - is-fullwidth-code-point: 5.0.0 + is-fullwidth-code-point: 5.1.0 smart-buffer@4.2.0: {} @@ -17404,8 +17404,8 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 + emoji-regex: 10.5.0 + get-east-asian-width: 1.3.1 strip-ansi: 7.1.0 string.prototype.trim@1.2.10: @@ -17498,7 +17498,7 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.2.1 + bare-fs: 4.2.2 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -17651,14 +17651,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.17.2)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.0)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.17.2 + '@types/node': 22.18.0 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17836,9 +17836,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.3): + update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: - browserslist: 4.25.3 + browserslist: 4.25.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -18083,7 +18083,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.38.1 + memfs: 4.38.2 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18152,7 +18152,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.25.3 + browserslist: 4.25.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 From 0eaec23d68ab86fbe4f2139e482aa0b0fb408463 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 2 Sep 2025 10:05:24 +0000 Subject: [PATCH 082/228] build: update github/codeql-action action to v3.30.0 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 554d2dfab71c..2e3c9df19845 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@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 + uses: github/codeql-action/init@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 + uses: github/codeql-action/analyze@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index bbca5b6bc870..d480bf741faf 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@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.11 + uses: github/codeql-action/upload-sarif@2d92b76c45b91eb80fc44c74ce3fce0ee94e8f9d # v3.30.0 with: sarif_file: results.sarif From 5c2abffea6cf3f672ee256a944dba56dd257665b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 2 Sep 2025 16:00:09 +0000 Subject: [PATCH 083/228] fix(@angular/build): avoid extra tick in SSR dev-server builds In SSR applications, an unnecessary event loop tick during server startup could lead to an incorrect platform being initialized. This change introduces an `ngJitMode` define, which is set to `false` during AOT builds. This allows for the JIT-specific code paths to not be followed, preventing the async operations that caused the extra tick. This ensures that the server platform is correctly and synchronously initialized. (cherry picked from commit 7b0f69798f061d5500620828cf304e05d667199f) --- packages/angular/build/src/builders/dev-server/vite-server.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/angular/build/src/builders/dev-server/vite-server.ts b/packages/angular/build/src/builders/dev-server/vite-server.ts index 6f68a37691c6..d0cf5f6738ba 100644 --- a/packages/angular/build/src/builders/dev-server/vite-server.ts +++ b/packages/angular/build/src/builders/dev-server/vite-server.ts @@ -456,6 +456,7 @@ export async function* serveWithVite( browserOptions.loader as EsbuildLoaderOption | undefined, { ...browserOptions.define, + 'ngJitMode': browserOptions.aot ? 'false' : 'true', 'ngHmrMode': browserOptions.templateUpdates ? 'true' : 'false', }, extensions?.middleware, From b2d5e6e508a18e640b7a252d21d2683615eca761 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 2 Sep 2025 14:07:14 -0400 Subject: [PATCH 084/228] refactor(@angular/cli): add logging and HTML removal to doc search tool This commit enhances the `search_documentation` MCP tool by improving its error handling and the quality of the data it returns. The key changes are: - **Error Logging:** The content fetching logic now logs a warning if it fails to retrieve or parse the documentation page, providing better visibility for debugging without crashing the tool. - **HTML Removal:** The fetched HTML content now has all tags removed, providing the AI with clean, plain-text content. This reduces noise, lowers the token count, and improves the quality of the input for the language model. (cherry picked from commit bd1aa7bced1b6efbf736c7eb8282f8b73c53669d) --- .../cli/src/commands/mcp/tools/doc-search.ts | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts index 1e5b92b21797..da34f97b8b4d 100644 --- a/packages/angular/cli/src/commands/mcp/tools/doc-search.ts +++ b/packages/angular/cli/src/commands/mcp/tools/doc-search.ts @@ -10,7 +10,7 @@ import type { LegacySearchMethodProps, SearchResponse } from 'algoliasearch'; import { createDecipheriv } from 'node:crypto'; import { z } from 'zod'; import { at, iv, k1 } from '../constants'; -import { declareTool } from './tool-registry'; +import { McpToolContext, declareTool } from './tool-registry'; const ALGOLIA_APP_ID = 'L1XWT2UJ7F'; // https://www.algolia.com/doc/guides/security/api-keys/#search-only-api-key @@ -84,7 +84,7 @@ tutorials, concepts, and best practices. factory: createDocSearchHandler, }); -function createDocSearchHandler() { +function createDocSearchHandler({ logger }: McpToolContext) { let client: import('algoliasearch').SearchClient | undefined; return async ({ query, includeTopContent }: DocSearchInput) => { @@ -124,21 +124,23 @@ function createDocSearchHandler() { const { title: topTitle, breadcrumb: topBreadcrumb } = formatHitToParts(topHit); let topContent: string | undefined; - try { - if (includeTopContent && typeof topHit.url === 'string') { - const url = new URL(topHit.url); - + if (includeTopContent && typeof topHit.url === 'string') { + const url = new URL(topHit.url); + try { // Only fetch content from angular.dev if (url.hostname === 'angular.dev' || url.hostname.endsWith('.angular.dev')) { const response = await fetch(url); if (response.ok) { const html = await response.text(); - topContent = extractMainContent(html); + const mainContent = extractMainContent(html); + if (mainContent) { + topContent = stripHtml(mainContent); + } } } + } catch (e) { + logger.warn(`Failed to fetch or parse content from ${url}: ${e}`); } - } catch { - // Ignore errors fetching content } structuredResults.push({ @@ -175,6 +177,22 @@ function createDocSearchHandler() { }; } +/** + * Strips HTML tags from a string. + * @param html The HTML string to strip. + * @returns The text content of the HTML. + */ +function stripHtml(html: string): string { + // This is a basic regex to remove HTML tags. + // It also decodes common HTML entities. + return html + .replace(/<[^>]*>/g, '') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/&/g, '&') + .trim(); +} + /** * Extracts the content of the `
` element from an HTML string. * From 99526bd88346d4ffe263ca94692a0ffa2bad1df7 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Tue, 2 Sep 2025 12:05:28 -0700 Subject: [PATCH 085/228] refactor(@angular/cli): Improve zoneless migration prompts based on observed outcomes After observing some results from the tool's prompts, I found some improvements: * if there was an existing import from '@angular/core' LLMs sometimes chose to delete it and all preceding imports * Moved the note about "remove provideZoneChangeDetection" to the specific prompt where it's relevant. This was being used in the final "non-actionable" prompts and resulted in LLMs choosing to delete 'provideZonelessChangeDetection' additions from previous iterations (cherry picked from commit 3b06b28feae324145174bfb67021f383ac8f36aa) --- .../mcp/tools/onpush-zoneless-migration/prompts.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts index 7176808e6a28..01254ed5fc61 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts @@ -25,8 +25,12 @@ export function createProvideZonelessForTestsSetupPrompt(testFilePath: string): In the main \`beforeEach\` block for the test suite (the one inside the top-level \`describe\`), add \`provideZonelessChangeDetection()\` to the providers array in \`TestBed.configureTestingModule\`. + * If there is already an import from \`@angular/core\`, add \`provideZonelessChangeDetection\` to the existing import. + * Otherwise, add a new import statement for \`provideZonelessChangeDetection\` from \`@angular/core\`. + \`\`\`diff - + import { provideZonelessChangeDetection } from '@angular/core'; + - import {{ SomeImport }} from '@angular/core'; + + import {{ SomeImport, provideZonelessChangeDetection }} from '@angular/core'; describe('MyComponent', () => { + beforeEach(() => { @@ -202,6 +206,9 @@ export async function createFixResponseForZoneTests( The following usages of \`provideZoneChangeDetection\` must be removed: ${locations.map((loc) => `- ${loc}`).join('\n')} + + After removing \`provideZoneChangeDetection\`, the tests will likely fail. Use this guide to diagnose and fix the failures. + ${testDebuggingGuideText(sourceFile.fileName)} ### Final Step @@ -214,8 +221,6 @@ function testDebuggingGuideText(fileName: string) { return ` ### Test Debugging Guide - After removing \`provideZoneChangeDetection\`, the tests will likely fail. Use this guide to diagnose and fix the failures. - 1. **\`ExpressionChangedAfterItHasBeenCheckedError\`**: * **Cause**: This error indicates that a value in a component's template was updated, but Angular was not notified to run change detection. * **Solution**: From f3c826853501c9cf6d07a1c8ee3363eb79f53005 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 2 Sep 2025 12:44:24 -0400 Subject: [PATCH 086/228] fix(@angular/build): maintain media output hashing with vitest unit-testing To ensure that output media files do not overwrite each other if source media files use the same base file name but are contained in different directories, the output hashing option from the build target will now keep the `media` option enabled if configured. (cherry picked from commit f806f6477af222907f1879181fb0f9839e889ea8) --- .../angular/build/src/builders/unit-test/builder.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/unit-test/builder.ts b/packages/angular/build/src/builders/unit-test/builder.ts index dde40f449742..4bda61b3893f 100644 --- a/packages/angular/build/src/builders/unit-test/builder.ts +++ b/packages/angular/build/src/builders/unit-test/builder.ts @@ -36,6 +36,17 @@ export type { UnitTestBuilderOptions }; type VitestCoverageOption = Exclude; +function adjustOutputHashing(hashing?: OutputHashing): OutputHashing { + switch (hashing) { + case OutputHashing.All: + case OutputHashing.Media: + // Ensure media is continued to be hashed to avoid overwriting of output media files + return OutputHashing.Media; + default: + return OutputHashing.None; + } +} + /** * @experimental Direct usage of this function is considered experimental. */ @@ -135,7 +146,7 @@ export async function* execute( ssr: false, prerender: false, sourceMap: { scripts: true, vendor: false, styles: false }, - outputHashing: OutputHashing.None, + outputHashing: adjustOutputHashing(buildTargetOptions.outputHashing), optimization: false, tsConfig: normalizedOptions.tsConfig, entryPoints, From 2736599e2f6c61032810d8e336c1646db4066392 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 3 Sep 2025 12:23:19 +0000 Subject: [PATCH 087/228] fix(@angular/cli): set process title when running architect commands When running an Architect command for a specific project, the process title is now updated to include the project's name. This provides better visibility in process lists, making it easier to identify which project is being built or served, especially in multi-project workspaces. The original process title is restored after the command finishes execution. Closes #31110 (cherry picked from commit e192e8c7ecf506e4b03668f527de83f2a57f552d) --- .../command-builder/architect-command-module.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/angular/cli/src/command-builder/architect-command-module.ts b/packages/angular/cli/src/command-builder/architect-command-module.ts index 4855b629b360..4218c6274521 100644 --- a/packages/angular/cli/src/command-builder/architect-command-module.ts +++ b/packages/angular/cli/src/command-builder/architect-command-module.ts @@ -97,11 +97,17 @@ export abstract class ArchitectCommandModule } async run(options: Options & OtherOptions): Promise { - const target = this.getArchitectTarget(); + const originalProcessTitle = process.title; + try { + const target = this.getArchitectTarget(); + const { configuration = '', project, ...architectOptions } = options; - const { configuration = '', project, ...architectOptions } = options; + if (project) { + process.title = `${originalProcessTitle} (${project})`; + + return await this.runSingleTarget({ configuration, target, project }, architectOptions); + } - if (!project) { // This runs each target sequentially. // Running them in parallel would jumble the log messages. let result = 0; @@ -111,12 +117,13 @@ export abstract class ArchitectCommandModule } for (const project of projectNames) { + process.title = `${originalProcessTitle} (${project})`; result |= await this.runSingleTarget({ configuration, target, project }, architectOptions); } return result; - } else { - return await this.runSingleTarget({ configuration, target, project }, architectOptions); + } finally { + process.title = originalProcessTitle; } } From 425bfe478bd693052aa0b541aab00599b7fe2a81 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 29 Aug 2025 12:25:58 -0400 Subject: [PATCH 088/228] refactor(@angular/cli): update MCP example tool format for if example The sample `@if` example for the MCP experimental `find_examples` tool has been updated to use a more structured format. This format is being used to evaluate optimal structure for future examples. (cherry picked from commit 3a3d9e22e51d0828931b31a69bf17bfa3351fa81) --- packages/angular/cli/lib/examples/if-block.md | 87 +++++++++++++++---- 1 file changed, 72 insertions(+), 15 deletions(-) diff --git a/packages/angular/cli/lib/examples/if-block.md b/packages/angular/cli/lib/examples/if-block.md index e0d10ca86891..806e3d05516c 100644 --- a/packages/angular/cli/lib/examples/if-block.md +++ b/packages/angular/cli/lib/examples/if-block.md @@ -1,28 +1,85 @@ -# Angular @if Control Flow Example +--- +title: 'Using the @if Built-in Control Flow Block' +summary: 'Demonstrates how to use the @if built-in control flow block to conditionally render content in an Angular template based on a boolean expression.' +keywords: + - '@if' + - 'control flow' + - 'conditional rendering' + - 'template syntax' +related_concepts: + - '@else' + - '@else if' + - 'signals' +related_tools: + - 'modernize' +--- -This example demonstrates how to use the `@if` control flow block in an Angular template. The visibility of a `
` element is controlled by a boolean field in the component's TypeScript code. +## Purpose -## Angular Template +The purpose of this pattern is to create dynamic user interfaces by controlling which elements are rendered to the DOM based on the application's state. This is a fundamental technique for building responsive and interactive components. -```html - -@if (isVisible()) { -
This content is conditionally displayed.
+## When to Use + +Use the `@if` block as the modern, preferred alternative to the `*ngIf` directive for all conditional rendering. It offers better type-checking and a cleaner, more intuitive syntax within the template. + +## Key Concepts + +- **`@if` block:** The primary syntax for conditional rendering in modern Angular templates. It evaluates a boolean expression and renders the content within its block if the expression is true. + +## Example Files + +### `conditional-content.component.ts` + +This is a self-contained standalone component that demonstrates the `@if` block with an optional `@else` block. + +```typescript +import { Component, signal } from '@angular/core'; + +@Component({ + selector: 'app-conditional-content', + template: ` + + + @if (isVisible()) { +
This content is conditionally displayed.
+ } @else { +
The content is hidden. Click the button to show it.
+ } + `, +}) +export class ConditionalContentComponent { + protected readonly isVisible = signal(true); + + toggleVisibility(): void { + this.isVisible.update((v) => !v); + } } ``` -## Component TypeScript +## Usage Notes + +- The expression inside the `@if ()` block must evaluate to a boolean. +- This example uses a signal, which is a common pattern, but any boolean property or method call from the component can be used. +- The `@else` block is optional and is rendered when the `@if` condition is `false`. + +## How to Use This Example + +### 1. Import the Component + +In a standalone architecture, import the component into the `imports` array of the parent component where you want to use it. ```typescript +// in app.component.ts import { Component } from '@angular/core'; +import { ConditionalContentComponent } from './conditional-content.component'; @Component({ - selector: 'app-example', - templateUrl: './example.html', - styleUrl: './example.css', + selector: 'app-root', + imports: [ConditionalContentComponent], + template: ` +

My Application

+ + `, }) -export class Example { - // This boolean signal controls the visibility of the element in the template. - protected readonly isVisible = signal(true); -} +export class AppComponent {} ``` From 8ffc449e186637422b1b574bd38de9c479e6c84c Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 3 Sep 2025 16:19:02 -0400 Subject: [PATCH 089/228] release: cut the v20.2.2 release --- CHANGELOG.md | 20 ++++++++++++++++++++ package.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c56c7a0acaa..f82a223c83ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ + + +# 20.2.2 (2025-09-03) + +### @angular/cli + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------ | +| [a793bbc47](https://github.com/angular/angular-cli/commit/a793bbc473dfaddf3fe6ed15805dc4fc84f52865) | fix | don't set a default for array options when length is 0 | +| [2736599e2](https://github.com/angular/angular-cli/commit/2736599e2f6c61032810d8e336c1646db4066392) | fix | set process title when running architect commands | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------ | +| [5c2abffea](https://github.com/angular/angular-cli/commit/5c2abffea6cf3f672ee256a944dba56dd257665b) | fix | avoid extra tick in SSR dev-server builds | +| [f3c826853](https://github.com/angular/angular-cli/commit/f3c826853501c9cf6d07a1c8ee3363eb79f53005) | fix | maintain media output hashing with vitest unit-testing | + + + # 20.2.1 (2025-08-27) diff --git a/package.json b/package.json index c50bd587846a..3746cc8dcf45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.1", + "version": "20.2.2", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 5a9503ba3e29d2956ebbb5725227424a23e4822b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 4 Sep 2025 08:05:46 +0000 Subject: [PATCH 090/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 317 +++++++++--------- 11 files changed, 245 insertions(+), 228 deletions(-) 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..e797b9da7b7a 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 @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@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/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..cbbd49fe3dba 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 @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@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/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/package.json b/package.json index 3746cc8dcf45..ef7d91dd47f3 100644 --- a/package.json +++ b/package.json @@ -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.2.4", + "@angular/cdk": "20.2.2", + "@angular/common": "20.2.4", + "@angular/compiler": "20.2.4", + "@angular/compiler-cli": "20.2.4", + "@angular/core": "20.2.4", + "@angular/forms": "20.2.4", + "@angular/localize": "20.2.4", + "@angular/material": "20.2.2", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1b75cbad43a688705205725df89bf311a8d08652", + "@angular/platform-browser": "20.2.4", + "@angular/platform-server": "20.2.4", + "@angular/router": "20.2.4", + "@angular/service-worker": "20.2.4", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 79dc4f537f31..0c4d56082bdc 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.2.4", + "@angular/compiler": "20.2.4", + "@angular/core": "20.2.4", + "@angular/platform-browser": "20.2.4", + "@angular/platform-server": "20.2.4", + "@angular/router": "20.2.4", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 29ba7c8a259a..5ce3a0d15004 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.2.4", + "@angular/compiler-cli": "20.2.4", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc301efb79fc..3c074b927ab9 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.2.4 + version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4 '@angular/compiler-cli': - specifier: 20.2.3 - version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) + specifier: 20.2.4 + version: 20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4) '@angular/material': - specifier: 20.2.1 - version: 20.2.1(db7b32723760b0ee941b26d324534a22) + specifier: 20.2.2 + version: 20.2.2(287c6e0b7fcf3ed64c131b42d0a8e7e9) '@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.2.4 + version: 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4 '@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.2.4 + version: 20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.2.0 - version: 20.2.0(@angular/compiler-cli@20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.2.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(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.2.4 + version: 20.2.4 '@angular/compiler-cli': - specifier: 20.2.3 - version: 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) + specifier: 20.2.4 + version: 20.2.4(@angular/compiler@20.2.4)(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.2.4': + resolution: {integrity: sha512-mXiTlXZgAF4uYonOt7l2w7uvLLTJEk6jqs3H291bYuoDRM8R166UjN7ygAeBmPiJ4TLMyKGkwMQy3b1Vvw4RQA==} 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.2.4 - '@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.2.4': + resolution: {integrity: sha512-mc6Sq1cYjaPJYThnvG6x0f/E27pWksqwaNJxT1RtwhAGc1i2jsc0su6b7e5NnXEgVbdPqu1MZHAEFdXZ5+/MwQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.3 + '@angular/core': 20.2.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.3': - resolution: {integrity: sha512-adLyPXmKbH8VZJCyOraaha+RPTdAjEBRTqwZ5YkjkViTMMANFkuj1w3pDwQsG3LFknRJ99aym+9neGINeAaI7A==} + '@angular/compiler-cli@20.2.4': + resolution: {integrity: sha512-II2hEpfbo73dL12D42DoIHYGiTYAiO9cpwh29BIo8VD054ei4cm0oK+jCyryDQH5T3+wyCWlj0OFjcZ/GmO7HQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.2.3 + '@angular/compiler': 20.2.4 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.3': - resolution: {integrity: sha512-vYGDluko8zAIWhQmKijhcGO0tzanwGONDRgbJ01mCqUsQV+XwmDgUUDZKrUY9uve0wxxM3Xvo4/BjEpGpeG75w==} + '@angular/compiler@20.2.4': + resolution: {integrity: sha512-LQzf+Azb/Ms+BavpCFIat+f1C0gUJpby2RW4yebF3JkBFKfJ7M8d49TQpF8rSnGxMRTf49mln7laz4nBYTLDGA==} 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.2.4': + resolution: {integrity: sha512-8yvfvPDWX8M7o82GBl5P1nlvm1ywQ2XZi5HWj3llKpSJE2XjzhATgPrpKwiNVnpgjZWTOwM11fpoAaRKqQjxTA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.2.3 + '@angular/compiler': 20.2.4 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.2.4': + resolution: {integrity: sha512-wbgnW+GALVAmK6hgFegkwlHKw35onvh9Z5A236HCyUySEAOiaD/3CoDg5Hw4iHQAiSU6Fn2NwDiv+W0xki6WDw==} 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.2.4 + '@angular/core': 20.2.4 + '@angular/platform-browser': 20.2.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.2.3': - resolution: {integrity: sha512-+r7VbxuaOwUuvC1xPfuNpJSbwv4+LOUouVZhBq5sp2qYrKkVw2QZaIbd6uPTE1NWbu7rGwSGVw4rTx4LvA3fYw==} + '@angular/localize@20.2.4': + resolution: {integrity: sha512-8OimXwR/hzUHJdegLD4+Zhg1h3qaAVLwLLK3G6Ba4EU9W9HJCyqvxIXooXossLBp/toFKyjU/RxmH+dwy4ztCQ==} 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.2.4 + '@angular/compiler-cli': 20.2.4 - '@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.2.4': + resolution: {integrity: sha512-81vzW8xhnJU7AiYJKXLR2MuvawzhRDgwyNkPEep58wty5zNuIUCXdUERJSsXo7m/U2Dg1FUFfqLm4RC2UkqLzA==} 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.2.4 + '@angular/common': 20.2.4 + '@angular/core': 20.2.4 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.2.3': - resolution: {integrity: sha512-KswW/6KX4Av8WdiJLIVElqi4f7RIcIrcnkRRYrVm2UUHEpH+W94LkMMN9ybACmGSArg0j5DlfyJtotZefwFtzQ==} + '@angular/platform-server@20.2.4': + resolution: {integrity: sha512-7DK2DPZTYKUAPCYK7cbR+RXQq9DWeWDnSVtXqCsiVPfPXgURnzzffvzWhtvZm39jjI+L4WHmdVUGsEItv5IjFA==} 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.2.4 + '@angular/compiler': 20.2.4 + '@angular/core': 20.2.4 + '@angular/platform-browser': 20.2.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.2.3': - resolution: {integrity: sha512-r8yGJcxHPfeIHZOoyCxN2H4nMgBD/k4TVTFaq8MHf5ryy1iLzayIMPJTFaZe7xpwlJJuBYEjBrYfUN38fYKWgA==} + '@angular/router@20.2.4': + resolution: {integrity: sha512-KoduI1o+iBfCBGtXMvmy/qncDIwGxd2hNt2hDkkiYZTftmSg/XUJDxJqN84ckm2WLkdJpR9EirrwfHapJBIZOQ==} 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.2.4 + '@angular/core': 20.2.4 + '@angular/platform-browser': 20.2.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.2.3': - resolution: {integrity: sha512-h3f44QBCEuC7FoKT0FH+PDW4VFqdsImn6PuGjXFEjMe7D8gcV9HK8aeYMCcvAJetWSqaG5hdDHO4gNoZgQV9Zg==} + '@angular/service-worker@20.2.4': + resolution: {integrity: sha512-lBwgdBrwEwW0Mxn2tKA6JIKviegi6HvY+ujXre15B5KkeweSflrMQMayXOz/fdRz1hCB4/DoUQx3vn7GveYP4Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.2.3 + '@angular/core': 20.2.4 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 @@ -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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler@20.2.4)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.3 + '@angular/compiler': 20.2.4 '@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.2.4': 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.2.4(@angular/compiler@20.2.4)(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.2.4 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.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4)': dependencies: - '@angular/compiler': 20.2.3 - '@angular/compiler-cli': 20.2.3(@angular/compiler@20.2.3)(typescript@5.9.2) + '@angular/compiler': 20.2.4 + '@angular/compiler-cli': 20.2.4(@angular/compiler@20.2.4)(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(287c6e0b7fcf3ed64c131b42d0a8e7e9)': 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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.2.4 + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler@20.2.4)(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 @@ -14072,7 +14082,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.1(supports-color@10.2.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -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.2.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(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.2.4(@angular/compiler@20.2.4)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.50.0 ajv: 8.17.1 From 5d46d6ec114052715a8bd17761a4f258961ad26b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 5 Sep 2025 09:03:58 +0000 Subject: [PATCH 091/228] fix(@angular/build): preserve names in esbuild for improved debugging in dev mode This commit introduces the `keepNames` option in esbuild configurations for both application code bundling and Vite utility functions. By setting `keepNames` to `true` (or conditionally based on optimization settings), function and variable names are preserved during the build process. This significantly improves the debugging experience in **development mode** by ensuring that original names are retained in compiled output, leading to more readable stack traces and easier identification of code sections during development. (cherry picked from commit 58da860fc4e040d1dbce0b1955c361a2efdb3559) --- .../src/tools/esbuild/application-code-bundle.ts | 12 ++++++++---- packages/angular/build/src/tools/vite/utils.ts | 1 + .../tests/build/prerender/error-with-sourcemaps.ts | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) 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/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+\)/, ); } From 82569861d5ee86a22a476ae861f9ef6d6a2eee3e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 6 Sep 2025 05:04:54 +0000 Subject: [PATCH 092/228] build: update github/codeql-action action to v3.30.1 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2e3c9df19845..90c7a577c85e 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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d480bf741faf..c8aaa4f8a8b7 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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 with: sarif_file: results.sarif From e54fc81f70ab2027ea86c36e7b1919f00113f190 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 2 Sep 2025 10:05:37 +0000 Subject: [PATCH 093/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c074b927ab9..4725f8fdd3de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14082,7 +14082,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: From f6ad41c134c7ae938ccda908967e7cc863b3db16 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 8 Sep 2025 14:50:18 +0000 Subject: [PATCH 094/228] fix(@angular/cli): improve bun lockfile detection and optimize lockfile checks This commit refactors the package manager lockfile detection logic to: - Introduce a `LOCKFILE_NAMES` constant for better maintainability and clarity. - Enhance Bun lockfile detection by checking for both `bun.lockb` and `bun.lock`. - Optimize lockfile checks by reading the root directory files once and passing them to the `hasLockfile` method, reducing redundant file system operations. This addresses issues where Bun lockfiles might not have been correctly identified. closes #31128 (cherry picked from commit 2037b912b2f78eb4469d8671fbca8c43f06cd2ff) --- .../cli/src/utilities/package-manager.ts | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts index d95205f95184..430ff91c7d48 100644 --- a/packages/angular/cli/src/utilities/package-manager.ts +++ b/packages/angular/cli/src/utilities/package-manager.ts @@ -8,13 +8,23 @@ 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> = { + [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 +39,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 +232,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 +283,18 @@ 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: PackageManager, 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 { From a48db0a00e49ef263a93b0f1beabf02a5e233426 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 06:51:56 +0000 Subject: [PATCH 095/228] refactor(@angular/cli): exclude Cnpm from LOCKFILE_NAMES type The `LOCKFILE_NAMES` constant in `packages/angular/cli/src/utilities/package-manager.ts` is updated to explicitly exclude `PackageManager.Cnpm` from its type definition. This refactors the type to accurately reflect the package managers supported by the lockfile detection logic. --- packages/angular/cli/src/utilities/package-manager.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts index 430ff91c7d48..63316fe2c67f 100644 --- a/packages/angular/cli/src/utilities/package-manager.ts +++ b/packages/angular/cli/src/utilities/package-manager.ts @@ -18,7 +18,9 @@ import { memoize } from './memoize'; /** * A map of package managers to their corresponding lockfile names. */ -const LOCKFILE_NAMES: Readonly> = { +const LOCKFILE_NAMES: Readonly< + Record, string | readonly string[]> +> = { [PackageManager.Yarn]: 'yarn.lock', [PackageManager.Pnpm]: 'pnpm-lock.yaml', [PackageManager.Bun]: ['bun.lockb', 'bun.lock'], @@ -289,7 +291,10 @@ export class PackageManagerUtils { * @param filesInRoot An array of file names in the root directory. * @returns True if the lockfile exists, false otherwise. */ - private hasLockfile(packageManager: PackageManager, filesInRoot: string[]): boolean { + private hasLockfile( + packageManager: Exclude, + filesInRoot: string[], + ): boolean { const lockfiles = LOCKFILE_NAMES[packageManager]; return typeof lockfiles === 'string' From 57724699ae44222ab034f1a6858ebfafb5a19c19 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 9 Sep 2025 11:34:09 +0000 Subject: [PATCH 096/228] build: update github/codeql-action action to v3.30.2 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 90c7a577c85e..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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 + 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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 + uses: github/codeql-action/analyze@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index c8aaa4f8a8b7..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@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1 + uses: github/codeql-action/upload-sarif@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2 with: sarif_file: results.sarif From ec9442cfea54b29982aa3c34cbe451ee4ee0194f Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 09:33:35 +0000 Subject: [PATCH 097/228] ci: update runs-on to ubuntu-latest This commit updates the `runs-on` configuration in the CI workflows (`ci.yml`, `pr.yml`) from specific `ubuntu-latest-Xcore` labels to the more general `ubuntu-latest`. This change reduces resource consumption. This change should not be needed for RBE and remote cache. (cherry picked from commit 157840247183dfce13663ac1c8af043ff6eaa2f0) --- .github/workflows/ci.yml | 2 +- .github/workflows/pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e797b9da7b7a..ed5f4a0d1738 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cbbd49fe3dba..308eaa6bd73d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -90,7 +90,7 @@ 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 From 1a789087344aa94d061839122e6a63efbfc9c905 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 08:42:56 +0000 Subject: [PATCH 098/228] fix(@angular-devkit/build-angular): avoid extra tick in SSR builds In SSR applications, an unnecessary event loop tick during server startup could lead to an incorrect platform being initialized. This change introduces an `ngJitMode` define, which is set to `false` during AOT builds. This allows for the JIT-specific code paths to not be followed, preventing the async operations that caused the extra tick. This ensures that the server platform is correctly and synchronously initialized. (cherry picked from commit 9749ec687800c1bbeae4b75550dee3608bbe6823) --- .../angular_devkit/build_angular/src/builders/server/index.ts | 1 + 1 file changed, 1 insertion(+) 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, }), ], From e21bd5c6a7da111c8700938c76bd6099e4024d72 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 17:17:01 +0000 Subject: [PATCH 099/228] build: prepare exceptional minor branch: 20.3.x --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ef7d91dd47f3..9dc14d30fa7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.2.2", + "version": "20.3.0-next.0", "private": true, "description": "Software Development Kit for Angular", "keywords": [ @@ -174,5 +174,6 @@ }, "resolutions": { "typescript": "5.9.2" - } + }, + "__ngDevExceptionalMinor__": true } From ef20a278d1455b9cdffc5102b13d0b2206ef1ecb Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:48:54 +0000 Subject: [PATCH 100/228] fix(@schematics/angular): align labels in ai-config schema The labels in the `ai-config` schematic were not aligned, this commit fixes the alignment. (cherry picked from commit ddebe3d4fc35486a57f4051fdd4493caba4e6c07) --- packages/schematics/angular/ai-config/schema.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 ]" } ] }, From 7eacb41878f5fdac8d40aedfcca6794b77eda5ff Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 9 Sep 2025 08:10:12 +0000 Subject: [PATCH 101/228] feat(@angular/ssr): introduce BootstrapContext for isolated server-side rendering This commit introduces a number of changes to the server bootstrapping process to make it more robust and less error-prone, especially for concurrent requests. Previously, the server rendering process relied on a module-level global platform injector. This could lead to issues in server-side rendering environments where multiple requests are processed concurrently, as they could inadvertently share or overwrite the global injector state. The new approach introduces a `BootstrapContext` that is passed to the `bootstrapApplication` function. This context provides a platform reference that is scoped to the individual request, ensuring that each server-side render has an isolated platform injector. This prevents state leakage between concurrent requests and makes the overall process more reliable. BREAKING CHANGE: 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); ``` --- .../public-api/angular/ssr/node/index.api.md | 5 +++-- packages/angular/build/BUILD.bazel | 1 + .../server-rendering/load-esm-from-memory.ts | 3 ++- packages/angular/ssr/BUILD.bazel | 1 + .../node/src/common-engine/common-engine.ts | 9 +++++--- packages/angular/ssr/src/manifest.ts | 1 + packages/angular/ssr/src/routes/ng-routes.ts | 2 +- .../angular/ssr/src/routes/route-config.ts | 21 ++++++++++-------- packages/angular/ssr/src/utils/ng.ts | 7 ++++-- packages/angular/ssr/test/testing-utils.ts | 22 +++++++++++-------- .../src/builders/app-shell/render-worker.ts | 7 ++++-- .../src/builders/prerender/render-worker.ts | 7 ++++-- .../prerender/routes-extractor-worker.ts | 3 ++- .../standalone-src/main.server.ts.template | 5 +++-- .../standalone-src/main.server.ts.template | 5 +++-- .../schematics/angular/server/index_spec.ts | 8 +++---- 16 files changed, 67 insertions(+), 40 deletions(-) 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/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/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/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/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/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/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 () => { From b3c1d72652dfebbf327054cd91e536a0ae061698 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 10 Sep 2025 15:26:22 +0000 Subject: [PATCH 102/228] build: update FW packages to 20.3.0 Update FW packages to latest minor. --- constants.bzl | 4 +- package.json | 22 +- packages/angular/build/package.json | 2 +- packages/angular/ssr/package.json | 12 +- .../angular_devkit/build_angular/BUILD.bazel | 1 + .../angular_devkit/build_angular/package.json | 2 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 262 +++++++++--------- 8 files changed, 155 insertions(+), 154 deletions(-) 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/package.json b/package.json index 9dc14d30fa7e..408b4d4db2c9 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.2.4", + "@angular/animations": "20.3.0", "@angular/cdk": "20.2.2", - "@angular/common": "20.2.4", - "@angular/compiler": "20.2.4", - "@angular/compiler-cli": "20.2.4", - "@angular/core": "20.2.4", - "@angular/forms": "20.2.4", - "@angular/localize": "20.2.4", + "@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.2.4", - "@angular/platform-server": "20.2.4", - "@angular/router": "20.2.4", - "@angular/service-worker": "20.2.4", + "@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/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/ssr/package.json b/packages/angular/ssr/package.json index 0c4d56082bdc..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.4", - "@angular/compiler": "20.2.4", - "@angular/core": "20.2.4", - "@angular/platform-browser": "20.2.4", - "@angular/platform-server": "20.2.4", - "@angular/router": "20.2.4", + "@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_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/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 5ce3a0d15004..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.4", - "@angular/compiler-cli": "20.2.4", + "@angular/compiler": "20.3.0", + "@angular/compiler-cli": "20.3.0", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4725f8fdd3de..79398028cd4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.2.4 - version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.2 - version: 20.2.2(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.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.4 - version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4 + specifier: 20.3.0 + version: 20.3.0 '@angular/compiler-cli': - specifier: 20.2.4 - version: 20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4) + 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.2 - version: 20.2.2(287c6e0b7fcf3ed64c131b42d0a8e7e9) + version: 20.2.2(458e7ea89830b69817139b360ad854ab) '@angular/ng-dev': 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.4 - version: 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4 + specifier: 20.3.0 + version: 20.3.0 '@angular/core': - specifier: 20.2.4 - version: 20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(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.4 - version: 20.2.4 + specifier: 20.3.0 + version: 20.3.0 '@angular/compiler-cli': - specifier: 20.2.4 - version: 20.2.4(@angular/compiler@20.2.4)(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,11 +975,11 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.2.4': - resolution: {integrity: sha512-mXiTlXZgAF4uYonOt7l2w7uvLLTJEk6jqs3H291bYuoDRM8R166UjN7ygAeBmPiJ4TLMyKGkwMQy3b1Vvw4RQA==} + '@angular/animations@20.3.0': + resolution: {integrity: sha512-rCojVsJHaReDfSB4lwcWYJAfbkFXQmcdivdN5m1NavuSlKpWoLw4fLkxkcuOXDjUEwNSb45hRI4ixcwrcuQtmw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.2.4 + '@angular/core': 20.3.0 '@angular/cdk@20.2.2': resolution: {integrity: sha512-jLvIMmFI8zoi6vAu1Aszua59GmhqBOtsVfkwLUGg5Hi86DI/inJr9BznNX2EKDtaulYMGZCmDgsltXQXeqP5Lg==} @@ -988,33 +988,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.2.4': - resolution: {integrity: sha512-mc6Sq1cYjaPJYThnvG6x0f/E27pWksqwaNJxT1RtwhAGc1i2jsc0su6b7e5NnXEgVbdPqu1MZHAEFdXZ5+/MwQ==} + '@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.4 + '@angular/core': 20.3.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.2.4': - resolution: {integrity: sha512-II2hEpfbo73dL12D42DoIHYGiTYAiO9cpwh29BIo8VD054ei4cm0oK+jCyryDQH5T3+wyCWlj0OFjcZ/GmO7HQ==} + '@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.4 + '@angular/compiler': 20.3.0 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.2.4': - resolution: {integrity: sha512-LQzf+Azb/Ms+BavpCFIat+f1C0gUJpby2RW4yebF3JkBFKfJ7M8d49TQpF8rSnGxMRTf49mln7laz4nBYTLDGA==} + '@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.4': - resolution: {integrity: sha512-8yvfvPDWX8M7o82GBl5P1nlvm1ywQ2XZi5HWj3llKpSJE2XjzhATgPrpKwiNVnpgjZWTOwM11fpoAaRKqQjxTA==} + '@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.4 + '@angular/compiler': 20.3.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,22 +1023,22 @@ packages: zone.js: optional: true - '@angular/forms@20.2.4': - resolution: {integrity: sha512-wbgnW+GALVAmK6hgFegkwlHKw35onvh9Z5A236HCyUySEAOiaD/3CoDg5Hw4iHQAiSU6Fn2NwDiv+W0xki6WDw==} + '@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.4 - '@angular/core': 20.2.4 - '@angular/platform-browser': 20.2.4 + '@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.4': - resolution: {integrity: sha512-8OimXwR/hzUHJdegLD4+Zhg1h3qaAVLwLLK3G6Ba4EU9W9HJCyqvxIXooXossLBp/toFKyjU/RxmH+dwy4ztCQ==} + '@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.4 - '@angular/compiler-cli': 20.2.4 + '@angular/compiler': 20.3.0 + '@angular/compiler-cli': 20.3.0 '@angular/material@20.2.2': resolution: {integrity: sha512-ovLk6h6XIw3qtSjp2bSqFn7ANYvWOIh2zTrRPdAB78siOpqs11d8YdyD4LUEuUrcZoInNgK7AMJsfldDkHwhnA==} @@ -1055,42 +1055,42 @@ packages: version: 0.0.0-3186a078ec23edea6e2f6192ed013ec57bd95f87 hasBin: true - '@angular/platform-browser@20.2.4': - resolution: {integrity: sha512-81vzW8xhnJU7AiYJKXLR2MuvawzhRDgwyNkPEep58wty5zNuIUCXdUERJSsXo7m/U2Dg1FUFfqLm4RC2UkqLzA==} + '@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.4 - '@angular/common': 20.2.4 - '@angular/core': 20.2.4 + '@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.4': - resolution: {integrity: sha512-7DK2DPZTYKUAPCYK7cbR+RXQq9DWeWDnSVtXqCsiVPfPXgURnzzffvzWhtvZm39jjI+L4WHmdVUGsEItv5IjFA==} + '@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.4 - '@angular/compiler': 20.2.4 - '@angular/core': 20.2.4 - '@angular/platform-browser': 20.2.4 + '@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.4': - resolution: {integrity: sha512-KoduI1o+iBfCBGtXMvmy/qncDIwGxd2hNt2hDkkiYZTftmSg/XUJDxJqN84ckm2WLkdJpR9EirrwfHapJBIZOQ==} + '@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.4 - '@angular/core': 20.2.4 - '@angular/platform-browser': 20.2.4 + '@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.4': - resolution: {integrity: sha512-lBwgdBrwEwW0Mxn2tKA6JIKviegi6HvY+ujXre15B5KkeweSflrMQMayXOz/fdRz1hCB4/DoUQx3vn7GveYP4Q==} + '@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.4 + '@angular/core': 20.3.0 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -6782,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 @@ -9105,28 +9105,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 - '@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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/core': 20.2.4(@angular/compiler@20.2.4)(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.2(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.2.4 + '@angular/compiler': 20.3.0 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9140,30 +9140,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.2.4': + '@angular/compiler@20.3.0': dependencies: tslib: 2.8.1 - '@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4 + '@angular/compiler': 20.3.0 zone.js: 0.15.1 - '@angular/forms@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4)': + '@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.4 - '@angular/compiler-cli': 20.2.4(@angular/compiler@20.2.4)(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 @@ -9171,13 +9171,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.2(287c6e0b7fcf3ed64c131b42d0a8e7e9)': + '@angular/material@20.2.2(458e7ea89830b69817139b360ad854ab)': dependencies: - '@angular/cdk': 20.2.2(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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 @@ -9244,35 +9244,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.2.4 - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.2.4(@angular/animations@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(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 @@ -15874,10 +15874,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.2.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(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.4(@angular/compiler@20.2.4)(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 From d85d5903983853fceba6f841b76c17f5f5c4e000 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 10 Sep 2025 16:49:34 +0000 Subject: [PATCH 103/228] release: cut the v20.3.0-rc.0 release --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f82a223c83ae..b814a2204db3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,58 @@ + + +# 20.3.0-rc.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/package.json b/package.json index 408b4d4db2c9..76e35aa80b56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.0-next.0", + "version": "20.3.0-rc.0", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From db1c0256ce34b6df0dde861ccc2f194e6c532e61 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 10 Sep 2025 16:54:43 +0000 Subject: [PATCH 104/228] release: cut the v20.3.0 release --- CHANGELOG.md | 4 ++-- package.json | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b814a2204db3..24b4e0078ee1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ - + -# 20.3.0-rc.0 (2025-09-10) +# 20.3.0 (2025-09-10) ## Breaking Changes diff --git a/package.json b/package.json index 76e35aa80b56..680605ea51eb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.0-rc.0", + "version": "20.3.0", "private": true, "description": "Software Development Kit for Angular", "keywords": [ @@ -174,6 +174,5 @@ }, "resolutions": { "typescript": "5.9.2" - }, - "__ngDevExceptionalMinor__": true + } } From 5e3b6faa55911f334079a0ab41cb1512d0f198f6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 10 Sep 2025 21:10:24 +0000 Subject: [PATCH 105/228] build: update github/codeql-action action to v3.30.3 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b4921b0868e3..40fb506b29de 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@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2 + uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2 + uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d74147208b95..24132b0bb481 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@d3678e237b9c32a6c9bffb3315c335f976f3549f # v3.30.2 + uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 with: sarif_file: results.sarif From 4e51032e3e474d7e7a82a493098162a1dd15bb75 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Wed, 10 Sep 2025 15:07:26 -0700 Subject: [PATCH 106/228] refactor(@angular/cli): Add instructions to component zoneless migration to retain NgZone.run I observed that it chose to do this in one test. These should not be removed for libraries that support Zone applications and also should not be removed for applications until the zoneless migration is entirely complete. (cherry picked from commit 47d0668b824827a22fde90c0f3bc23f30ec6eb5f) --- .../src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts index 01254ed5fc61..b01dd5bdee94 100644 --- a/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts +++ b/packages/angular/cli/src/commands/mcp/tools/onpush-zoneless-migration/prompts.ts @@ -154,6 +154,7 @@ export function generateZonelessMigrationInstructionsForComponent( 3. **DO NOT** use \`ChangeDetectionStrategy.OnPush\`. This will be the next step in the migration, but it is not part of this task. 4. **DO NOT** modify properties that are already signals or are used with the \`async\` pipe in the template, as they are already zoneless-compatible. 5. **DO NOT** make any changes to files other than the component file at \`${filePath}\` and its direct template/style files if necessary. + 6. **DO NOT** remove or modify usages of \`NgZone.run\` or \`NgZone.runOutsideAngular\`. These are still required. ### Final Step After you have applied all the required changes and followed all the rules, consult this tool again for the next steps in the migration process.`; From d60f4e53d8f511d313e517161dc26eb3cc005f1c Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 11 Sep 2025 07:12:56 +0000 Subject: [PATCH 107/228] fix(@angular/build): update vite to version `7.1.5` This fixes https://nvd.nist.gov/vuln/detail/CVE-2025-58751 Closes: #31158 --- packages/angular/build/package.json | 2 +- pnpm-lock.yaml | 78 ++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index fecb37dbbac7..6f988e9b27fc 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -42,7 +42,7 @@ "semver": "7.7.2", "source-map-support": "0.5.21", "tinyglobby": "0.2.14", - "vite": "7.1.2", + "vite": "7.1.5", "watchpack": "2.4.4" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79398028cd4b..b707bbf8334b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,7 +366,7 @@ importers: version: 5.1.14(@types/node@24.3.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -419,8 +419,8 @@ importers: specifier: 0.2.14 version: 0.2.14 vite: - specifier: 7.1.2 - version: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + specifier: 7.1.5 + version: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -8249,6 +8249,10 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinypool@1.1.1: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8622,6 +8626,46 @@ packages: yaml: optional: true + vite@7.1.5: + resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -12155,9 +12199,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': dependencies: - vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -17617,6 +17661,11 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} @@ -17978,7 +18027,7 @@ snapshots: debug: 4.4.1(supports-color@10.2.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18010,6 +18059,23 @@ snapshots: terser: 5.43.1 yaml: 2.8.1 + vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + dependencies: + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.3.0 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.4.0 + sass: 1.90.0 + terser: 5.43.1 + yaml: 2.8.1 + vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 From be60be4997ea0f7be3a4fb993f87b1bd29fc1493 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 11 Sep 2025 08:50:40 +0000 Subject: [PATCH 108/228] fix(@angular/build): add timestamp to bundle generation log Adds an ISO timestamp to the "Application bundle generation complete" message. This provides more precise information about when the build process finished, which can be useful for debugging and analyzing build performance. Closes #30572 (cherry picked from commit 43fc5536fd42694a09a7b7c25fe8c5665e3e28d3) --- packages/angular/build/src/builders/application/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/application/index.ts b/packages/angular/build/src/builders/application/index.ts index 80261c41277f..8f11f2fd8001 100644 --- a/packages/angular/build/src/builders/application/index.ts +++ b/packages/angular/build/src/builders/application/index.ts @@ -109,7 +109,8 @@ export async function* buildApplicationInternal( const hasError = result.errors.length > 0; result.addLog( - `Application bundle generation ${hasError ? 'failed' : 'complete'}. [${buildTime.toFixed(3)} seconds]\n`, + `Application bundle generation ${hasError ? 'failed' : 'complete'}.` + + ` [${buildTime.toFixed(3)} seconds] - ${new Date().toISOString()}\n`, ); } From 9930e8aab37772ad46d5b6ad018458bbea12b9ba Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 11 Sep 2025 13:01:11 +0000 Subject: [PATCH 109/228] release: cut the v20.3.1 release --- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24b4e0078ee1..a5baac8a54a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ + + +# 20.3.1 (2025-09-11) + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------- | +| [be60be499](https://github.com/angular/angular-cli/commit/be60be4997ea0f7be3a4fb993f87b1bd29fc1493) | fix | add timestamp to bundle generation log | +| [d60f4e53d](https://github.com/angular/angular-cli/commit/d60f4e53d8f511d313e517161dc26eb3cc005f1c) | fix | update vite to version `7.1.5` | + + + # 20.3.0 (2025-09-10) diff --git a/package.json b/package.json index 680605ea51eb..b56adb5f4b87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.0", + "version": "20.3.1", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From d12877fbe7155e2eab3b3dc2b97b35d0a27502b6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 12 Sep 2025 06:41:47 +0000 Subject: [PATCH 110/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- package.json | 6 +- pnpm-lock.yaml | 590 +++++++++--------- 9 files changed, 355 insertions(+), 353 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f44fdf7be978..ddf6d1b8c232 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + - uses: angular/dev-infra/github-actions/branch-manager@0f0f9518682c1e02be885ef2ecf1255499863dde with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed5f4a0d1738..78a975ae9733 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 0a5c67972e8f..a133c54ba21f 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + - uses: angular/dev-infra/github-actions/pull-request-labeling@0f0f9518682c1e02be885ef2ecf1255499863dde 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + - uses: angular/dev-infra/github-actions/post-approval-changes@0f0f9518682c1e02be885ef2ecf1255499863dde with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 23435ae8cb4a..43dfbc8a651d 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + - uses: angular/dev-infra/github-actions/feature-request@0f0f9518682c1e02be885ef2ecf1255499863dde with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index dfe002aa3e07..7210e66ee76a 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - 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 308eaa6bd73d..305d7ee3f676 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/linting/licenses@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - 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@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@3186a078ec23edea6e2f6192ed013ec57bd95f87 + uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 3329671db07c..96dd16e0bed6 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "3186a078ec23edea6e2f6192ed013ec57bd95f87", + commit = "0f0f9518682c1e02be885ef2ecf1255499863dde", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index b56adb5f4b87..adfd159727ee 100644 --- a/package.json +++ b/package.json @@ -47,15 +47,15 @@ "homepage": "https://github.com/angular/angular-cli", "devDependencies": { "@angular/animations": "20.3.0", - "@angular/cdk": "20.2.2", + "@angular/cdk": "20.2.3", "@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/material": "20.2.3", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#4e5d281697f0d601c92bd60a911219abaa1738e5", "@angular/platform-browser": "20.3.0", "@angular/platform-server": "20.3.0", "@angular/router": "20.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b707bbf8334b..9c8d03619488 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,8 +23,8 @@ importers: 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.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) + specifier: 20.2.3 + version: 20.2.3(@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.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) @@ -44,11 +44,11 @@ importers: 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.2 - version: 20.2.2(458e7ea89830b69817139b360ad854ab) + specifier: 20.2.3 + version: 20.2.3(b7c40be3285f79c41de79a30d2aa337c) '@angular/ng-dev': - 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) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#4e5d281697f0d601c92bd60a911219abaa1738e5 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': 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)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.3.0) + version: 5.1.14(@types/node@24.3.1) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -378,7 +378,7 @@ importers: version: 0.25.9 https-proxy-agent: specifier: 7.0.6 - version: 7.0.6(supports-color@10.2.0) + version: 7.0.6(supports-color@10.2.2) istanbul-lib-instrument: specifier: 6.0.3 version: 6.0.3 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.0) + version: 7.8.2(@types/node@24.3.1) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.1))(@types/node@24.3.1)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.0) + version: 7.8.2(@types/node@24.3.1) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -981,8 +981,8 @@ packages: peerDependencies: '@angular/core': 20.3.0 - '@angular/cdk@20.2.2': - resolution: {integrity: sha512-jLvIMmFI8zoi6vAu1Aszua59GmhqBOtsVfkwLUGg5Hi86DI/inJr9BznNX2EKDtaulYMGZCmDgsltXQXeqP5Lg==} + '@angular/cdk@20.2.3': + resolution: {integrity: sha512-gu1zzxxcwobeiH21VpphM+cPFrQX0dxGwlFx1W8eTcLYLWd9YjlTETucBrEUEWcXmRrVTXf/VcqA0rWsxd50Ow==} peerDependencies: '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 @@ -1040,19 +1040,19 @@ packages: '@angular/compiler': 20.3.0 '@angular/compiler-cli': 20.3.0 - '@angular/material@20.2.2': - resolution: {integrity: sha512-ovLk6h6XIw3qtSjp2bSqFn7ANYvWOIh2zTrRPdAB78siOpqs11d8YdyD4LUEuUrcZoInNgK7AMJsfldDkHwhnA==} + '@angular/material@20.2.3': + resolution: {integrity: sha512-fe6abllA5VwFQTYuKjJQNQMzMakFD8CLaQsgSoUCAYnlCJ1YjMMIVAbcrMuJVlDeGz1cM9PaZgvUyCOZCMADhQ==} peerDependencies: - '@angular/cdk': 20.2.2 + '@angular/cdk': 20.2.3 '@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/1b75cbad43a688705205725df89bf311a8d08652': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652} - version: 0.0.0-3186a078ec23edea6e2f6192ed013ec57bd95f87 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5} + version: 0.0.0-0f0f9518682c1e02be885ef2ecf1255499863dde hasBin: true '@angular/platform-browser@20.3.0': @@ -2122,8 +2122,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.17.0': - resolution: {integrity: sha512-r/OZWN9D8WvYrte3bcKPoLODrZ+2TjfxHm5OOyVHUbdFYIp1C4yJaXX4+sCS8I/+CbN9PxLjU5zm1cgmS7qz+A==} + '@google/genai@1.19.0': + resolution: {integrity: sha512-mIMV3M/KfzzFA//0fziK472wKBJ1TdJLhozIUJKTPLyTDN1NotU+hyoHW/N0cfrcEWUK20YA0GxCeHC4z0SbMA==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -3244,9 +3244,6 @@ packages: '@types/content-disposition@0.5.9': resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} - '@types/conventional-commits-parser@5.0.1': - resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} - '@types/convert-source-map@2.0.3': resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} @@ -3374,8 +3371,8 @@ packages: '@types/node@22.18.0': resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} - '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/node@24.3.1': + resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -4300,6 +4297,10 @@ packages: resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} @@ -4489,9 +4490,9 @@ packages: resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} engines: {node: '>=18'} - conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} + conventional-commits-parser@6.2.0: + resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + engines: {node: '>=18'} hasBin: true convert-source-map@1.9.0: @@ -5447,6 +5448,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} @@ -6020,10 +6024,6 @@ packages: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -6548,10 +6548,6 @@ packages: resolution: {integrity: sha512-FpWsVHpAkoSh/LfY1BgAl72BVd374ooMRtDi2VqzBycX4XEfvC0XKACCe0C9VRZoYq5viuoyTv6lYXZ/Q7TrLQ==} engines: {node: '>= 4.0.0'} - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} @@ -7460,7 +7456,7 @@ packages: puppeteer@18.2.1: resolution: {integrity: sha512-7+UhmYa7wxPh2oMRwA++k8UGVDxh3YdWFB52r9C3tM81T6BU7cuusUSxImz0GEYSOYUKk/YzIhkQ6+vc0gHbxQ==} engines: {node: '>=14.1.0'} - deprecated: < 24.9.0 is no longer supported + deprecated: < 24.10.2 is no longer supported q@1.4.1: resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==} @@ -7596,6 +7592,9 @@ packages: resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} engines: {node: '>= 0.8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-url-loader@5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} engines: {node: '>=12'} @@ -8131,8 +8130,8 @@ packages: stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} - supports-color@10.2.0: - resolution: {integrity: sha512-5eG9FQjEjDbAlI5+kdpdyPIBMRH4GfTVDGREVupaZHmVoppknhM29b/S9BkQz7cathp85BVgRi/As3Siln7e0Q==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} supports-color@2.0.0: @@ -8211,10 +8210,6 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - thingies@2.5.0: resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} engines: {node: '>=10.18'} @@ -8347,6 +8342,11 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} + tsx@4.20.5: + resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} + engines: {node: '>=18.0.0'} + hasBin: true + tuf-js@3.1.0: resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9154,7 +9154,7 @@ snapshots: '@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.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/cdk@20.2.3(@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.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) @@ -9215,9 +9215,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.2(458e7ea89830b69817139b360ad854ab)': + '@angular/material@20.2.3(b7c40be3285f79c41de79a30d2aa337c)': dependencies: - '@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/cdk': 20.2.3(@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) @@ -9225,13 +9225,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/1b75cbad43a688705205725df89bf311a8d08652(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5(@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.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) + '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) + '@google/genai': 1.19.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.4(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) '@octokit/auth-app': 8.1.0 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 @@ -9244,14 +9244,13 @@ snapshots: '@octokit/types': 14.1.0 '@pnpm/dependency-path': 1001.1.0 '@types/cli-progress': 3.11.6 - '@types/conventional-commits-parser': 5.0.1 '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 '@types/minimatch': 6.0.0 - '@types/node': 24.3.0 + '@types/node': 24.3.1 '@types/semver': 7.7.1 '@types/supports-color': 10.0.0 '@types/which': 3.0.4 @@ -9259,16 +9258,16 @@ snapshots: '@types/yarnpkg__lockfile': 1.1.9 '@yarnpkg/lockfile': 1.1.0 bufferutil: 4.0.9 - chalk: 5.6.0 + chalk: 5.6.2 cli-progress: 3.12.0 conventional-commits-filter: 5.0.0 - conventional-commits-parser: 5.0.0 + conventional-commits-parser: 6.2.0 ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 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) + folder-hash: 4.1.1(supports-color@10.2.2) + git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) jasmine: 5.10.0 jasmine-core: 5.10.0 jasmine-reporters: 2.5.2 @@ -9277,7 +9276,8 @@ snapshots: multimatch: 7.0.0 nock: 14.0.10 semver: 7.7.2 - supports-color: 10.2.0 + supports-color: 10.2.2 + tsx: 4.20.5 typed-graphqlify: 3.1.6 typescript: 5.9.2 utf-8-validate: 6.0.5 @@ -9349,7 +9349,7 @@ snapshots: '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9401,7 +9401,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -9989,7 +9989,7 @@ snapshots: '@babel/parser': 7.28.3 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -10004,13 +10004,13 @@ snapshots: '@colors/colors@1.5.0': {} - '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0)': + '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)': dependencies: '@types/semver': 7.7.1 semver: 7.7.2 optionalDependencies: conventional-commits-filter: 5.0.0 - conventional-commits-parser: 5.0.0 + conventional-commits-parser: 6.2.0 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -10167,7 +10167,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10181,7 +10181,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -10523,17 +10523,17 @@ snapshots: '@glideapps/ts-necessities@2.2.3': {} - '@google-cloud/common@6.0.0(supports-color@10.2.0)': + '@google-cloud/common@6.0.0(supports-color@10.2.2)': dependencies: '@google-cloud/projectify': 4.0.0 '@google-cloud/promisify': 4.1.0 arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.2) html-entities: 2.6.0 - retry-request: 8.0.2(supports-color@10.2.0) - teeny-request: 10.1.0(supports-color@10.2.0) + retry-request: 8.0.2(supports-color@10.2.2) + teeny-request: 10.1.0(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -10547,9 +10547,9 @@ snapshots: '@google-cloud/promisify@5.0.0': {} - '@google-cloud/spanner@8.0.0(supports-color@10.2.0)': + '@google-cloud/spanner@8.0.0(supports-color@10.2.2)': dependencies: - '@google-cloud/common': 6.0.0(supports-color@10.2.0) + '@google-cloud/common': 6.0.0(supports-color@10.2.2) '@google-cloud/precise-date': 5.0.0 '@google-cloud/projectify': 5.0.0 '@google-cloud/promisify': 5.0.0 @@ -10565,26 +10565,26 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.0) - google-gax: 5.0.3(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.2) + google-gax: 5.0.3(supports-color@10.2.2) grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 merge-stream: 2.0.0 p-queue: 6.6.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.2.0) + retry-request: 8.0.2(supports-color@10.2.2) split-array-stream: 2.0.0 stack-trace: 0.0.10 stream-events: 1.0.5 - teeny-request: 10.1.0(supports-color@10.2.0) + teeny-request: 10.1.0(supports-color@10.2.2) through2: 4.0.2 transitivePeerDependencies: - supports-color - '@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)': + '@google/genai@1.19.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: - google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.0) + google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: '@modelcontextprotocol/sdk': 1.17.3 @@ -10633,34 +10633,34 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@24.3.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/confirm@5.1.14(@types/node@24.3.0)': + '@inquirer/confirm@5.1.14(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/confirm@5.1.16(@types/node@24.3.0)': + '@inquirer/confirm@5.1.16(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/core@10.2.0(@types/node@24.3.0)': + '@inquirer/core@10.2.0(@types/node@24.3.1)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.1) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -10668,115 +10668,115 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/editor@4.2.18(@types/node@24.3.0)': + '@inquirer/editor@4.2.18(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/external-editor': 1.0.1(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/external-editor': 1.0.1(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/expand@4.0.18(@types/node@24.3.0)': + '@inquirer/expand@4.0.18(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/external-editor@1.0.1(@types/node@24.3.0)': + '@inquirer/external-editor@1.0.1(@types/node@24.3.1)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.3.0)': + '@inquirer/input@4.2.2(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/number@3.0.18(@types/node@24.3.0)': + '@inquirer/number@3.0.18(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/password@4.0.18(@types/node@24.3.0)': + '@inquirer/password@4.0.18(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.3.0 - - '@inquirer/prompts@7.8.2(@types/node@24.3.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) - '@inquirer/confirm': 5.1.14(@types/node@24.3.0) - '@inquirer/editor': 4.2.18(@types/node@24.3.0) - '@inquirer/expand': 4.0.18(@types/node@24.3.0) - '@inquirer/input': 4.2.2(@types/node@24.3.0) - '@inquirer/number': 3.0.18(@types/node@24.3.0) - '@inquirer/password': 4.0.18(@types/node@24.3.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) - '@inquirer/search': 3.1.1(@types/node@24.3.0) - '@inquirer/select': 4.3.2(@types/node@24.3.0) + '@types/node': 24.3.1 + + '@inquirer/prompts@7.8.2(@types/node@24.3.1)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.1) + '@inquirer/confirm': 5.1.14(@types/node@24.3.1) + '@inquirer/editor': 4.2.18(@types/node@24.3.1) + '@inquirer/expand': 4.0.18(@types/node@24.3.1) + '@inquirer/input': 4.2.2(@types/node@24.3.1) + '@inquirer/number': 3.0.18(@types/node@24.3.1) + '@inquirer/password': 4.0.18(@types/node@24.3.1) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.1) + '@inquirer/search': 3.1.1(@types/node@24.3.1) + '@inquirer/select': 4.3.2(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 - - '@inquirer/prompts@7.8.4(@types/node@24.3.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) - '@inquirer/confirm': 5.1.16(@types/node@24.3.0) - '@inquirer/editor': 4.2.18(@types/node@24.3.0) - '@inquirer/expand': 4.0.18(@types/node@24.3.0) - '@inquirer/input': 4.2.2(@types/node@24.3.0) - '@inquirer/number': 3.0.18(@types/node@24.3.0) - '@inquirer/password': 4.0.18(@types/node@24.3.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) - '@inquirer/search': 3.1.1(@types/node@24.3.0) - '@inquirer/select': 4.3.2(@types/node@24.3.0) + '@types/node': 24.3.1 + + '@inquirer/prompts@7.8.4(@types/node@24.3.1)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.1) + '@inquirer/confirm': 5.1.16(@types/node@24.3.1) + '@inquirer/editor': 4.2.18(@types/node@24.3.1) + '@inquirer/expand': 4.0.18(@types/node@24.3.1) + '@inquirer/input': 4.2.2(@types/node@24.3.1) + '@inquirer/number': 3.0.18(@types/node@24.3.1) + '@inquirer/password': 4.0.18(@types/node@24.3.1) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.1) + '@inquirer/search': 3.1.1(@types/node@24.3.1) + '@inquirer/select': 4.3.2(@types/node@24.3.1) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/rawlist@4.1.6(@types/node@24.3.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/search@3.1.1(@types/node@24.3.0)': + '@inquirer/search@3.1.1(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/select@4.3.2(@types/node@24.3.0)': + '@inquirer/select@4.3.2(@types/node@24.3.1)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/core': 10.2.0(@types/node@24.3.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.3.1) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 - '@inquirer/type@3.0.8(@types/node@24.3.0)': + '@inquirer/type@3.0.8(@types/node@24.3.1)': optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 '@isaacs/balanced-match@4.0.1': {} @@ -10862,10 +10862,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.1))(@types/node@24.3.1)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/prompts': 7.8.2(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.1) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11030,7 +11030,7 @@ snapshots: dependencies: agent-base: 7.1.4 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 10.4.3 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -11330,7 +11330,7 @@ snapshots: '@puppeteer/browsers@2.10.8': dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -11644,10 +11644,6 @@ snapshots: '@types/content-disposition@0.5.9': {} - '@types/conventional-commits-parser@5.0.1': - dependencies: - '@types/node': 22.18.0 - '@types/convert-source-map@2.0.3': {} '@types/cookies@0.9.1': @@ -11808,7 +11804,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.3.0': + '@types/node@24.3.1': dependencies: undici-types: 7.10.0 @@ -11900,7 +11896,7 @@ snapshots: '@types/supports-color@10.0.0': dependencies: - supports-color: 10.2.0 + supports-color: 10.2.2 '@types/tapable@1.0.12': {} @@ -11974,7 +11970,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) eslint: 9.33.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: @@ -11984,7 +11980,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -12003,7 +11999,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2) - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) eslint: 9.33.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 @@ -12020,7 +12016,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -12052,7 +12048,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/loaders': 8.0.0-next-8.9 '@verdaccio/signature': 8.0.0-next-8.11 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) lodash: 4.17.21 verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: @@ -12066,7 +12062,7 @@ snapshots: '@verdaccio/config@8.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) js-yaml: 4.1.0 lodash: 4.17.21 minimatch: 7.4.6 @@ -12102,7 +12098,7 @@ snapshots: '@verdaccio/loaders@8.0.0-next-8.9': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -12125,7 +12121,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/logger-prettify': 8.0.0-next-8.3 colorette: 2.0.20 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -12150,7 +12146,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) express: 4.21.2 express-rate-limit: 5.5.1 lodash: 4.17.21 @@ -12165,7 +12161,7 @@ snapshots: dependencies: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color @@ -12176,7 +12172,7 @@ snapshots: dependencies: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) gunzip-maybe: 1.4.2 tar-stream: 3.1.7 transitivePeerDependencies: @@ -12187,7 +12183,7 @@ snapshots: '@verdaccio/url@13.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: @@ -12199,9 +12195,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12211,13 +12207,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12543,9 +12539,9 @@ snapshots: dependencies: es6-promisify: 5.0.0 - agent-base@6.0.2(supports-color@10.2.0): + agent-base@6.0.2(supports-color@10.2.2): dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -12881,7 +12877,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -13090,6 +13086,8 @@ snapshots: chalk@5.6.0: {} + chalk@5.6.2: {} + chardet@2.1.0: {} check-error@2.1.1: {} @@ -13300,12 +13298,9 @@ snapshots: conventional-commits-filter@5.0.0: {} - conventional-commits-parser@5.0.0: + conventional-commits-parser@6.2.0: dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 + meow: 13.2.0 convert-source-map@1.9.0: {} @@ -13464,17 +13459,17 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@10.2.0): + debug@4.4.0(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.2.0 + supports-color: 10.2.2 - debug@4.4.1(supports-color@10.2.0): + debug@4.4.1(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.2.0 + supports-color: 10.2.2 decamelize@1.2.0: {} @@ -13960,7 +13955,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14098,7 +14093,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -14126,7 +14121,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.1(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14229,7 +14224,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -14301,16 +14296,16 @@ snapshots: flatted@3.3.3: {} - folder-hash@4.1.1(supports-color@10.2.0): + folder-hash@4.1.1(supports-color@10.2.2): dependencies: - debug: 4.4.0(supports-color@10.2.0) + debug: 4.4.0(supports-color@10.2.2) minimatch: 7.4.6 transitivePeerDependencies: - supports-color follow-redirects@1.15.11(debug@4.4.1): optionalDependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) for-each@0.3.5: dependencies: @@ -14389,10 +14384,10 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1(encoding@0.1.13)(supports-color@10.2.0): + gaxios@6.7.1(encoding@0.1.13)(supports-color@10.2.2): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) uuid: 9.0.1 @@ -14400,26 +14395,26 @@ snapshots: - encoding - supports-color - gaxios@7.1.1(supports-color@10.2.0): + gaxios@7.1.1(supports-color@10.2.2): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) node-fetch: 3.3.2 transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.2.0): + gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.2.2): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) google-logging-utils: 0.0.2 json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@7.0.1(supports-color@10.2.0): + gcp-metadata@7.0.1(supports-color@10.2.2): dependencies: - gaxios: 7.1.1(supports-color@10.2.0) + gaxios: 7.1.1(supports-color@10.2.2) google-logging-utils: 1.1.1 json-bigint: 1.0.0 transitivePeerDependencies: @@ -14463,11 +14458,15 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-uri@6.0.5: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -14475,9 +14474,9 @@ snapshots: dependencies: assert-plus: 1.0.0 - git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0): + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): dependencies: - '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@5.0.0) + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -14551,43 +14550,43 @@ snapshots: pify: 2.3.0 pinkie-promise: 2.0.1 - google-auth-library@10.3.0(supports-color@10.2.0): + google-auth-library@10.3.0(supports-color@10.2.2): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.1(supports-color@10.2.0) - gcp-metadata: 7.0.1(supports-color@10.2.0) + gaxios: 7.1.1(supports-color@10.2.2) + gcp-metadata: 7.0.1(supports-color@10.2.2) google-logging-utils: 1.1.1 - gtoken: 8.0.0(supports-color@10.2.0) + gtoken: 8.0.0(supports-color@10.2.2) jws: 4.0.0 transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.2.0): + google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.2.2): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) - gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.2.0) - gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.2.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) + gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.2.2) + gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.2.2) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - google-gax@5.0.3(supports-color@10.2.0): + google-gax@5.0.3(supports-color@10.2.2): dependencies: '@grpc/grpc-js': 1.13.4 '@grpc/proto-loader': 0.8.0 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.3.0(supports-color@10.2.0) + google-auth-library: 10.3.0(supports-color@10.2.2) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 proto3-json-serializer: 3.0.2 protobufjs: 7.5.4 - retry-request: 8.0.2(supports-color@10.2.0) + retry-request: 8.0.2(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -14613,17 +14612,17 @@ snapshots: '@grpc/grpc-js': 1.13.4 protobufjs: 7.5.4 - gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.0): + gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.2): dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.0) + gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - gtoken@8.0.0(supports-color@10.2.0): + gtoken@8.0.0(supports-color@10.2.2): dependencies: - gaxios: 7.1.1(supports-color@10.2.0) + gaxios: 7.1.1(supports-color@10.2.2) jws: 4.0.0 transitivePeerDependencies: - supports-color @@ -14745,18 +14744,18 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-agent@5.0.0(supports-color@10.2.0): + http-proxy-agent@5.0.0(supports-color@10.2.2): dependencies: '@tootallnate/once': 2.0.0 - agent-base: 6.0.2(supports-color@10.2.0) - debug: 4.4.1(supports-color@10.2.0) + agent-base: 6.0.2(supports-color@10.2.2) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -14775,7 +14774,7 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.16 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) http-proxy: 1.18.1(debug@4.4.1) is-glob: 4.0.3 is-plain-object: 5.0.0 @@ -14814,17 +14813,17 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1(supports-color@10.2.0): + https-proxy-agent@5.0.1(supports-color@10.2.2): dependencies: - agent-base: 6.0.2(supports-color@10.2.0) - debug: 4.4.1(supports-color@10.2.0) + agent-base: 6.0.2(supports-color@10.2.2) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6(supports-color@10.2.0): + https-proxy-agent@7.0.6(supports-color@10.2.2): dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -15080,10 +15079,6 @@ snapshots: has-symbols: 1.1.0 safe-regex-test: 1.1.0 - is-text-path@2.0.0: - dependencies: - text-extensions: 2.4.0 - is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 @@ -15167,7 +15162,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -15256,7 +15251,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.21 parse5: 7.3.0 @@ -15459,7 +15454,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -15479,7 +15474,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -15648,7 +15643,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -15728,8 +15723,6 @@ snapshots: tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 - meow@12.1.1: {} - meow@13.2.0: {} merge-descriptors@1.0.3: {} @@ -16238,10 +16231,10 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) get-uri: 6.0.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) pac-resolver: 7.0.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -16418,7 +16411,7 @@ snapshots: portfinder@1.0.37: dependencies: async: 3.2.6 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -16546,9 +16539,9 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.0) + https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 7.18.3 pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 @@ -16591,7 +16584,7 @@ snapshots: debug: 4.3.4 devtools-protocol: 0.0.1045489 extract-zip: 2.0.1 - https-proxy-agent: 5.0.1(supports-color@10.2.0) + https-proxy-agent: 5.0.1(supports-color@10.2.2) proxy-from-env: 1.1.0 rimraf: 3.0.2 tar-fs: 2.1.1 @@ -16607,7 +16600,7 @@ snapshots: dependencies: '@puppeteer/browsers': 2.10.8 chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) devtools-protocol: 0.0.1475386 typed-query-selector: 2.12.0 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -16619,7 +16612,7 @@ snapshots: puppeteer@18.2.1(bufferutil@4.0.9)(encoding@0.1.13): dependencies: - https-proxy-agent: 5.0.1(supports-color@10.2.0) + https-proxy-agent: 5.0.1(supports-color@10.2.2) progress: 2.0.3 proxy-from-env: 1.1.0 puppeteer-core: 18.2.1(bufferutil@4.0.9)(encoding@0.1.13) @@ -16809,6 +16802,8 @@ snapshots: http-errors: 1.6.3 path-is-absolute: 1.0.1 + resolve-pkg-maps@1.0.0: {} + resolve-url-loader@5.0.0: dependencies: adjust-sourcemap-loader: 4.0.0 @@ -16840,10 +16835,10 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - retry-request@8.0.2(supports-color@10.2.0): + retry-request@8.0.2(supports-color@10.2.2): dependencies: extend: 3.0.2 - teeny-request: 10.1.0(supports-color@10.2.0) + teeny-request: 10.1.0(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -16934,7 +16929,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -17075,7 +17070,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -17287,7 +17282,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -17348,7 +17343,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -17359,7 +17354,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -17437,7 +17432,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -17524,7 +17519,7 @@ snapshots: stubs@3.0.0: {} - supports-color@10.2.0: {} + supports-color@10.2.2: {} supports-color@2.0.0: {} @@ -17596,10 +17591,10 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - teeny-request@10.1.0(supports-color@10.2.0): + teeny-request@10.1.0(supports-color@10.2.2): dependencies: - http-proxy-agent: 5.0.0(supports-color@10.2.0) - https-proxy-agent: 5.0.1(supports-color@10.2.0) + http-proxy-agent: 5.0.0(supports-color@10.2.2) + https-proxy-agent: 5.0.1(supports-color@10.2.2) node-fetch: 3.3.2 stream-events: 1.0.5 transitivePeerDependencies: @@ -17627,8 +17622,6 @@ snapshots: dependencies: b4a: 1.6.7 - text-extensions@2.4.0: {} - thingies@2.5.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -17746,10 +17739,17 @@ snapshots: tsscmp@1.0.6: {} + tsx@4.20.5: + dependencies: + esbuild: 0.25.9 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -17952,7 +17952,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 express: 4.21.2 - https-proxy-agent: 5.0.1(supports-color@10.2.0) + https-proxy-agent: 5.0.1(supports-color@10.2.2) node-fetch: 2.6.7(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -17971,7 +17971,7 @@ snapshots: '@verdaccio/file-locking': 13.0.0-next-8.4 apache-md5: 1.1.8 bcryptjs: 2.4.3 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: @@ -17999,7 +17999,7 @@ snapshots: clipanion: 4.0.0-rc.4 compression: 1.8.1 cors: 2.8.5 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) envinfo: 7.14.0 express: 4.21.2 handlebars: 4.7.8 @@ -18021,13 +18021,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18042,7 +18042,7 @@ snapshots: - tsx - yaml - vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18051,15 +18051,16 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 sass: 1.90.0 terser: 5.43.1 + tsx: 4.20.5 yaml: 2.8.1 - vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18068,26 +18069,27 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 sass: 1.90.0 terser: 5.43.1 + tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1(supports-color@10.2.0) + debug: 4.4.1(supports-color@10.2.2) expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 @@ -18098,11 +18100,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.3.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From a5aef7d5224dd8ae955388c72977d23f5b869902 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 12 Sep 2025 17:05:32 +0000 Subject: [PATCH 111/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 9 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index ddf6d1b8c232..03350734a8cc 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@0f0f9518682c1e02be885ef2ecf1255499863dde + - uses: angular/dev-infra/github-actions/branch-manager@30d78d3d9f682c5e11eb647033b567fcd4f72692 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78a975ae9733..bf4c017e1009 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a133c54ba21f..57ed759d536d 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@0f0f9518682c1e02be885ef2ecf1255499863dde + - uses: angular/dev-infra/github-actions/pull-request-labeling@30d78d3d9f682c5e11eb647033b567fcd4f72692 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@0f0f9518682c1e02be885ef2ecf1255499863dde + - uses: angular/dev-infra/github-actions/post-approval-changes@30d78d3d9f682c5e11eb647033b567fcd4f72692 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 43dfbc8a651d..4ec0bb67a2c5 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@0f0f9518682c1e02be885ef2ecf1255499863dde + - uses: angular/dev-infra/github-actions/feature-request@30d78d3d9f682c5e11eb647033b567fcd4f72692 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 7210e66ee76a..82ae5ac0ef6c 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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 305d7ee3f676..9c7f93aa05b1 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/linting/licenses@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - 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@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@0f0f9518682c1e02be885ef2ecf1255499863dde + uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 96dd16e0bed6..9fdda311c728 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "0f0f9518682c1e02be885ef2ecf1255499863dde", + commit = "30d78d3d9f682c5e11eb647033b567fcd4f72692", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index adfd159727ee..1fee271c8cbd 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.0", "@angular/localize": "20.3.0", "@angular/material": "20.2.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#4e5d281697f0d601c92bd60a911219abaa1738e5", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#b09968ff949d95614d211bb2542038ce770abbba", "@angular/platform-browser": "20.3.0", "@angular/platform-server": "20.3.0", "@angular/router": "20.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c8d03619488..508726d46691 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.3 version: 20.2.3(b7c40be3285f79c41de79a30d2aa337c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#4e5d281697f0d601c92bd60a911219abaa1738e5 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#b09968ff949d95614d211bb2542038ce770abbba + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': 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)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5} - version: 0.0.0-0f0f9518682c1e02be885ef2ecf1255499863dde + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba} + version: 0.0.0-30d78d3d9f682c5e11eb647033b567fcd4f72692 hasBin: true '@angular/platform-browser@20.3.0': @@ -9225,7 +9225,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/4e5d281697f0d601c92bd60a911219abaa1738e5(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 60264266cd82106b4793ceda324569a616fbcbd5 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 12 Sep 2025 17:31:30 +0000 Subject: [PATCH 112/228] build: update rules_angular digest to 4010ef9 See associated pull request for more information. --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 9fdda311c728..72493f2a875a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -32,7 +32,7 @@ bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "rules_angular") git_override( module_name = "rules_angular", - commit = "17eac47ea99057f7473a7d93292e76327c894ed9", + commit = "4010ef96de0c46db7764adc2f262258c9de3d718", remote = "https://github.com/devversion/rules_angular.git", ) From bb93ebde6dfbb3dbd6e3dda278e3a0d2de3e081d Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 13 Sep 2025 06:39:52 +0000 Subject: [PATCH 113/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 252 +++++++++--------- 9 files changed, 183 insertions(+), 183 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 03350734a8cc..ae3ac2d3fbba 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + - uses: angular/dev-infra/github-actions/branch-manager@35c6b5e6701396d0b2e004657b9330e6f858208b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf4c017e1009..710c1db58367 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 57ed759d536d..f301917f4de6 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + - uses: angular/dev-infra/github-actions/pull-request-labeling@35c6b5e6701396d0b2e004657b9330e6f858208b 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + - uses: angular/dev-infra/github-actions/post-approval-changes@35c6b5e6701396d0b2e004657b9330e6f858208b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 4ec0bb67a2c5..f5f7ffd2bc44 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + - uses: angular/dev-infra/github-actions/feature-request@35c6b5e6701396d0b2e004657b9330e6f858208b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 82ae5ac0ef6c..f72409be0344 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - 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 9c7f93aa05b1..374fad8d34fc 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/linting/licenses@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - 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@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@30d78d3d9f682c5e11eb647033b567fcd4f72692 + uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 72493f2a875a..eb2bd7e8c34f 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "30d78d3d9f682c5e11eb647033b567fcd4f72692", + commit = "35c6b5e6701396d0b2e004657b9330e6f858208b", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 1fee271c8cbd..cd7563c2672d 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.0", "@angular/localize": "20.3.0", "@angular/material": "20.2.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#b09968ff949d95614d211bb2542038ce770abbba", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#03721faa87ef097af8cb4f657e8e4becc594f727", "@angular/platform-browser": "20.3.0", "@angular/platform-server": "20.3.0", "@angular/router": "20.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 508726d46691..cb26a7929c16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.3 version: 20.2.3(b7c40be3285f79c41de79a30d2aa337c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#b09968ff949d95614d211bb2542038ce770abbba - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#03721faa87ef097af8cb4f657e8e4becc594f727 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': 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)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.3.1) + version: 5.1.14(@types/node@24.3.3) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.1) + version: 7.8.2(@types/node@24.3.3) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.1))(@types/node@24.3.1)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.3))(@types/node@24.3.3)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.1) + version: 7.8.2(@types/node@24.3.3) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba} - version: 0.0.0-30d78d3d9f682c5e11eb647033b567fcd4f72692 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727} + version: 0.0.0-35c6b5e6701396d0b2e004657b9330e6f858208b hasBin: true '@angular/platform-browser@20.3.0': @@ -2848,16 +2848,16 @@ packages: resolution: {integrity: sha512-tNe7a6U4rCpxLMBaR0SIYTdjxGdL0Vwb3G1zY8++sPtHSvy7qd54u8CIB0Z+Y6t5tc9pNYMYCMwhE/wdSY7ltg==} engines: {node: '>=18.12'} - '@pnpm/dependency-path@1001.1.0': - resolution: {integrity: sha512-hOVNtEu25HTNOdi0PkvDd27AQHXBke18njbGSYJ02J4GbyoufazqP8+YDiC/wQ+28rKOpgUylT7pVlZoTmdUsg==} + '@pnpm/dependency-path@1001.1.1': + resolution: {integrity: sha512-kUQeP42kxGSEyqhAZGzMs3UQGDiY8Xk3/718uIKqhtHUCSoCas/p3xRRiEXKs7Wesp0Eb1X0I5xrugZbPiK1dw==} engines: {node: '>=18.12'} '@pnpm/graceful-fs@1000.0.0': resolution: {integrity: sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==} engines: {node: '>=18.12'} - '@pnpm/types@1000.7.0': - resolution: {integrity: sha512-1s7FvDqmOEIeFGLUj/VO8sF5lGFxeE/1WALrBpfZhDnMXY/x8FbmuygTTE5joWifebcZ8Ww8Kw2CgBoStsIevQ==} + '@pnpm/types@1000.8.0': + resolution: {integrity: sha512-yx86CGHHquWAI0GgKIuV/RnYewcf5fVFZemC45C/K2cX0uV8GB8TUP541ZrokWola2fZx5sn1vL7xzbceRZfoQ==} engines: {node: '>=18.12'} '@protobufjs/aspromise@1.1.2': @@ -3371,8 +3371,8 @@ packages: '@types/node@22.18.0': resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} - '@types/node@24.3.1': - resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} + '@types/node@24.3.3': + resolution: {integrity: sha512-GKBNHjoNw3Kra1Qg5UXttsY5kiWMEfoHq2TmXb+b1rcm6N7B3wTrFYIf/oSZ1xNQ+hVVijgLkiDZh7jRRsh+Gw==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -9225,13 +9225,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b09968ff949d95614d211bb2542038ce770abbba(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.19.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.4(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/prompts': 7.8.4(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) '@octokit/auth-app': 8.1.0 '@octokit/core': 7.0.3 '@octokit/graphql': 9.0.1 @@ -9242,7 +9242,7 @@ snapshots: '@octokit/request-error': 7.0.0 '@octokit/rest': 22.0.0 '@octokit/types': 14.1.0 - '@pnpm/dependency-path': 1001.1.0 + '@pnpm/dependency-path': 1001.1.1 '@types/cli-progress': 3.11.6 '@types/ejs': 3.1.5 '@types/events': 3.0.3 @@ -9250,7 +9250,7 @@ snapshots: '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 '@types/minimatch': 6.0.0 - '@types/node': 24.3.1 + '@types/node': 24.3.3 '@types/semver': 7.7.1 '@types/supports-color': 10.0.0 '@types/which': 3.0.4 @@ -10633,34 +10633,34 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@24.3.1)': + '@inquirer/checkbox@4.2.2(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/confirm@5.1.14(@types/node@24.3.1)': + '@inquirer/confirm@5.1.14(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/confirm@5.1.16(@types/node@24.3.1)': + '@inquirer/confirm@5.1.16(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/core@10.2.0(@types/node@24.3.1)': + '@inquirer/core@10.2.0(@types/node@24.3.3)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.3) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -10668,115 +10668,115 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/editor@4.2.18(@types/node@24.3.1)': + '@inquirer/editor@4.2.18(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/external-editor': 1.0.1(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/external-editor': 1.0.1(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/expand@4.0.18(@types/node@24.3.1)': + '@inquirer/expand@4.0.18(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/external-editor@1.0.1(@types/node@24.3.1)': + '@inquirer/external-editor@1.0.1(@types/node@24.3.3)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.3.1)': + '@inquirer/input@4.2.2(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/number@3.0.18(@types/node@24.3.1)': + '@inquirer/number@3.0.18(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/password@4.0.18(@types/node@24.3.1)': + '@inquirer/password@4.0.18(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.3.1 - - '@inquirer/prompts@7.8.2(@types/node@24.3.1)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.1) - '@inquirer/confirm': 5.1.14(@types/node@24.3.1) - '@inquirer/editor': 4.2.18(@types/node@24.3.1) - '@inquirer/expand': 4.0.18(@types/node@24.3.1) - '@inquirer/input': 4.2.2(@types/node@24.3.1) - '@inquirer/number': 3.0.18(@types/node@24.3.1) - '@inquirer/password': 4.0.18(@types/node@24.3.1) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.1) - '@inquirer/search': 3.1.1(@types/node@24.3.1) - '@inquirer/select': 4.3.2(@types/node@24.3.1) + '@types/node': 24.3.3 + + '@inquirer/prompts@7.8.2(@types/node@24.3.3)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.3) + '@inquirer/confirm': 5.1.14(@types/node@24.3.3) + '@inquirer/editor': 4.2.18(@types/node@24.3.3) + '@inquirer/expand': 4.0.18(@types/node@24.3.3) + '@inquirer/input': 4.2.2(@types/node@24.3.3) + '@inquirer/number': 3.0.18(@types/node@24.3.3) + '@inquirer/password': 4.0.18(@types/node@24.3.3) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.3) + '@inquirer/search': 3.1.1(@types/node@24.3.3) + '@inquirer/select': 4.3.2(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 - - '@inquirer/prompts@7.8.4(@types/node@24.3.1)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.1) - '@inquirer/confirm': 5.1.16(@types/node@24.3.1) - '@inquirer/editor': 4.2.18(@types/node@24.3.1) - '@inquirer/expand': 4.0.18(@types/node@24.3.1) - '@inquirer/input': 4.2.2(@types/node@24.3.1) - '@inquirer/number': 3.0.18(@types/node@24.3.1) - '@inquirer/password': 4.0.18(@types/node@24.3.1) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.1) - '@inquirer/search': 3.1.1(@types/node@24.3.1) - '@inquirer/select': 4.3.2(@types/node@24.3.1) + '@types/node': 24.3.3 + + '@inquirer/prompts@7.8.4(@types/node@24.3.3)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.3.3) + '@inquirer/confirm': 5.1.16(@types/node@24.3.3) + '@inquirer/editor': 4.2.18(@types/node@24.3.3) + '@inquirer/expand': 4.0.18(@types/node@24.3.3) + '@inquirer/input': 4.2.2(@types/node@24.3.3) + '@inquirer/number': 3.0.18(@types/node@24.3.3) + '@inquirer/password': 4.0.18(@types/node@24.3.3) + '@inquirer/rawlist': 4.1.6(@types/node@24.3.3) + '@inquirer/search': 3.1.1(@types/node@24.3.3) + '@inquirer/select': 4.3.2(@types/node@24.3.3) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/rawlist@4.1.6(@types/node@24.3.1)': + '@inquirer/rawlist@4.1.6(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/search@3.1.1(@types/node@24.3.1)': + '@inquirer/search@3.1.1(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/select@4.3.2(@types/node@24.3.1)': + '@inquirer/select@4.3.2(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) + '@inquirer/core': 10.2.0(@types/node@24.3.3) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/type': 3.0.8(@types/node@24.3.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 - '@inquirer/type@3.0.8(@types/node@24.3.1)': + '@inquirer/type@3.0.8(@types/node@24.3.3)': optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 '@isaacs/balanced-match@4.0.1': {} @@ -10862,10 +10862,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.1))(@types/node@24.3.1)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.3))(@types/node@24.3.3)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) + '@inquirer/prompts': 7.8.2(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.3.3) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11293,17 +11293,17 @@ snapshots: '@pnpm/crypto.polyfill@1000.1.0': {} - '@pnpm/dependency-path@1001.1.0': + '@pnpm/dependency-path@1001.1.1': dependencies: '@pnpm/crypto.hash': 1000.2.0 - '@pnpm/types': 1000.7.0 + '@pnpm/types': 1000.8.0 semver: 7.7.2 '@pnpm/graceful-fs@1000.0.0': dependencies: graceful-fs: 4.2.11 - '@pnpm/types@1000.7.0': {} + '@pnpm/types@1000.8.0': {} '@protobufjs/aspromise@1.1.2': {} @@ -11804,7 +11804,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.3.1': + '@types/node@24.3.3': dependencies: undici-types: 7.10.0 @@ -12195,9 +12195,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12207,13 +12207,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -18021,13 +18021,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18042,7 +18042,7 @@ snapshots: - tsx - yaml - vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18051,7 +18051,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18060,7 +18060,7 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vite@7.1.5(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18069,7 +18069,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18078,11 +18078,11 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.3.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18100,11 +18100,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.3.3 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 3fb4aa2bb79da5ab4c8e5d11d19d2039245cf818 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 13 Sep 2025 19:34:07 +0000 Subject: [PATCH 114/228] build: update pnpm to v10.16.1 See associated pull request for more information. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cd7563c2672d..eac6a4886ccf 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.15.1", + "packageManager": "pnpm@10.16.1", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", From 4c1ef20d7d5b48814cc939a632fdf74f1f8693a4 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 15 Sep 2025 07:06:02 +0000 Subject: [PATCH 115/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 1111 ++++++++++++++++++++++++------------------------ 1 file changed, 562 insertions(+), 549 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cb26a7929c16..024311e383ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.18.0 + version: 22.18.3 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -147,7 +147,7 @@ importers: version: 1.20.6 '@types/semver': specifier: ^7.3.12 - version: 7.7.0 + version: 7.7.1 '@types/shelljs': specifier: ^0.8.11 version: 0.8.17 @@ -210,7 +210,7 @@ importers: version: 16.3.0 http-proxy: specifier: ^1.18.1 - version: 1.18.1(debug@4.4.1) + version: 1.18.1(debug@4.4.3) http-proxy-middleware: specifier: 3.0.5 version: 3.0.5 @@ -258,7 +258,7 @@ importers: version: 0.30.17 npm: specifier: ^11.0.0 - version: 11.5.2 + version: 11.6.0 prettier: specifier: ^3.0.0 version: 3.6.2 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.18.0)(rollup@4.46.2) + version: 0.5.3(@types/node@22.18.3)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.4.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.18.0)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.3)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.25.4 + version: 4.26.0 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 - version: 4.25.4 + version: 4.26.0 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -1100,8 +1100,8 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} '@babel/core@7.28.3': @@ -1199,12 +1199,12 @@ packages: resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true @@ -1286,8 +1286,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.0': - resolution: {integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==} + '@babel/plugin-transform-block-scoping@7.28.4': + resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1304,8 +1304,8 @@ packages: peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.28.3': - resolution: {integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==} + '@babel/plugin-transform-classes@7.28.4': + resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1448,8 +1448,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.28.0': - resolution: {integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==} + '@babel/plugin-transform-object-rest-spread@7.28.4': + resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1496,8 +1496,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.28.3': - resolution: {integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==} + '@babel/plugin-transform-regenerator@7.28.4': + resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1593,12 +1593,12 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} '@bazel/bazelisk@1.26.0': @@ -1830,8 +1830,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -2156,24 +2156,24 @@ packages: resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/checkbox@4.2.2': - resolution: {integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==} + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + engines: {node: '>=18'} + + '@inquirer/checkbox@4.2.4': + resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2190,8 +2190,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.16': - resolution: {integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==} + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2199,8 +2199,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.2.0': - resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2208,8 +2208,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.18': - resolution: {integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==} + '@inquirer/editor@4.2.20': + resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2217,8 +2217,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.18': - resolution: {integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==} + '@inquirer/expand@4.0.20': + resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2226,8 +2226,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.1': - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2239,8 +2239,8 @@ packages: resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/input@4.2.2': - resolution: {integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==} + '@inquirer/input@4.2.4': + resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2248,8 +2248,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.18': - resolution: {integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==} + '@inquirer/number@3.0.20': + resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2257,8 +2257,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.18': - resolution: {integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==} + '@inquirer/password@4.0.20': + resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2284,8 +2284,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.6': - resolution: {integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==} + '@inquirer/rawlist@4.1.8': + resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2293,8 +2293,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.1': - resolution: {integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==} + '@inquirer/search@3.1.3': + resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2302,8 +2302,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.2': - resolution: {integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==} + '@inquirer/select@4.3.4': + resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2353,8 +2353,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2587,8 +2587,8 @@ packages: resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.0.3': - resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} + '@napi-rs/wasm-runtime@1.0.5': + resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2731,20 +2731,20 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@opentelemetry/context-async-hooks@2.0.1': - resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + '@opentelemetry/context-async-hooks@2.1.0': + resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.0.1': - resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + '@opentelemetry/core@2.1.0': + resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.36.0': - resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + '@opentelemetry/semantic-conventions@1.37.0': + resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} '@oxc-project/runtime@0.81.0': @@ -2890,8 +2890,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.8': - resolution: {integrity: sha512-f02QYEnBDE0p8cteNoPYHHjbDuwyfbe4cCIVlNi8/MRicIxFW4w4CfgU0LNgWEID6s06P+hRJ1qjpBLMhPRCiQ==} + '@puppeteer/browsers@2.10.9': + resolution: {integrity: sha512-kUGHwABarVhvMP+zhW5zvDA7LmGcd4TwrTEBwcTQic5EebUqaK5NjC0UXLJepIFVGsr2N/Z8NJQz2JYGo1ZwxA==} engines: {node: '>=18'} hasBin: true @@ -3022,6 +3022,15 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.46.2': resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] @@ -3122,8 +3131,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.50.0': - resolution: {integrity: sha512-mCzoNeR8ynLTHJ5VQ9J/GzSKPJjEC4/nCmGw2y3NSCZoc4sbSVdNe5x4S7+bda6QIEUrk6lR1FE7FEDo+p/u1Q==} + '@rollup/wasm-node@4.50.1': + resolution: {integrity: sha512-3oCUcKNdkemnqy6r12UdAtfYMWywGxVHSCQvtDYeEtnOcOQC/SihSXkO6+rByH2ZhbgfeTbqLiw1NDGfJDptyg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3190,8 +3199,8 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} - '@tybys/wasm-util@0.10.0': - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} @@ -3368,8 +3377,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.0': - resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} + '@types/node@22.18.3': + resolution: {integrity: sha512-gTVM8js2twdtqM+AE2PdGEe9zGQY4UvmFjan9rZcVb6FGdStfjWoWejdmy4CfWVO9rh5MiYQGZloKAGkJt8lMw==} '@types/node@24.3.3': resolution: {integrity: sha512-GKBNHjoNw3Kra1Qg5UXttsY5kiWMEfoHq2TmXb+b1rcm6N7B3wTrFYIf/oSZ1xNQ+hVVijgLkiDZh7jRRsh+Gw==} @@ -3422,9 +3431,6 @@ packages: '@types/selenium-webdriver@3.0.26': resolution: {integrity: sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==} - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} - '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} @@ -3534,8 +3540,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.41.0': - resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==} + '@typescript-eslint/types@8.43.0': + resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -3871,8 +3877,8 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + ansi-escapes@7.1.0: + resolution: {integrity: sha512-YdhtCd19sKRKfAAUsrcC1wzm4JuzJoiX4pOJqIoW2qmKj5WzG/dL8uUJ0361zaXtHqK7gEhOwtAtz7t3Yq3X5g==} engines: {node: '>=18'} ansi-html-community@0.0.8: @@ -3888,8 +3894,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.0: - resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -3900,8 +3906,8 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} ansis@4.1.0: @@ -4045,8 +4051,13 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + b4a@1.7.1: + resolution: {integrity: sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true babel-loader@10.0.0: resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} @@ -4076,8 +4087,8 @@ packages: bare-events@2.6.1: resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.2.2: - resolution: {integrity: sha512-5vn+bdnlCYMwETIm1FqQXDP6TYPbxr2uJd88ve40kr4oPbiTZJVrTNzqA3/4sfWZeWKuQR/RkboBt7qEEDtfMA==} + bare-fs@4.4.4: + resolution: {integrity: sha512-Q8yxM1eLhJfuM7KXVP3zjhBvtMJCYRByoTT+wHXjpdMELv0xICFJX+1w4c7csa+WZEOsq4ItJ4RGwvzid6m/dw==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4103,6 +4114,9 @@ packages: bare-events: optional: true + bare-url@2.2.2: + resolution: {integrity: sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -4114,6 +4128,10 @@ packages: resolution: {integrity: sha512-yyFDnoo0M1qlZfWyxihEphjxleNIv1W603kwqMiBE9B6SPFgZbysvoqOpMZr/l0wmErkRbBTp4gOwljtGx/TdQ==} hasBin: true + baseline-browser-mapping@2.8.3: + resolution: {integrity: sha512-mcE+Wr2CAhHNWxXN/DdTI+n4gsPc5QpXpWnyCQWiQYIYZX+ZMJ8juXZgjRa/0/YPJo/NSsgW15/YgmI4nbysYw==} + hasBin: true + basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} @@ -4197,8 +4215,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + browserslist@4.26.0: + resolution: {integrity: sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4271,8 +4289,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001739: - resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==} + caniuse-lite@1.0.30001741: + resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4293,10 +4311,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -4430,8 +4444,8 @@ packages: resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==} engines: {node: '>=12.20.0'} - commander@14.0.0: - resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + commander@14.0.1: + resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} engines: {node: '>=20'} commander@2.20.3: @@ -4685,6 +4699,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -4777,8 +4800,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + detect-libc@2.1.0: + resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==} engines: {node: '>=8'} detect-node@2.1.0: @@ -4792,8 +4815,8 @@ packages: devtools-protocol@0.0.1045489: resolution: {integrity: sha512-D+PTmWulkuQW4D1NTiCRCFxF7pQPn0hgp4YyX4wAQ6xYXKOadSWPR3ENGDQ47MW/Ewc9v2rpC/UEEGahgBYpSQ==} - devtools-protocol@0.0.1475386: - resolution: {integrity: sha512-RQ809ykTfJ+dgj9bftdeL2vRVxASAuGU+I9LEx9Ij5TXU5HrgAQVmzi72VA+mkzscE12uzlRv5/tWWv9R9J1SA==} + devtools-protocol@0.0.1495869: + resolution: {integrity: sha512-i+bkd9UYFis40RcnkW7XrOprCujXRAHg62IVh/Ah3G8MmNXpCGt1m0dTFhSdx/AVs8XEMbdOGRwdkR1Bcta8AA==} di@0.0.1: resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} @@ -4869,8 +4892,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.212: - resolution: {integrity: sha512-gE7ErIzSW+d8jALWMcOIgf+IB6lpfsg6NwOhPVwKzDtN2qcBix47vlin4yzSregYDxTCXOUqAZjVY/Z3naS7ww==} + electron-to-chromium@1.5.218: + resolution: {integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -5420,8 +5443,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.1: - resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -5740,6 +5763,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -6496,8 +6523,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + lru-cache@11.2.1: + resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -6544,8 +6571,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.38.2: - resolution: {integrity: sha512-FpWsVHpAkoSh/LfY1BgAl72BVd374ooMRtDi2VqzBycX4XEfvC0XKACCe0C9VRZoYq5viuoyTv6lYXZ/Q7TrLQ==} + memfs@4.39.0: + resolution: {integrity: sha512-tFRr2IkSXl2B6IAJsxjHIMTOsfLt9W+8+t2uNxCeQcz4tFqgQR8DYk8hlLH2HsucTctLuoHq3U0G08atyBE3yw==} engines: {node: '>= 4.0.0'} meow@13.2.0: @@ -6848,8 +6875,8 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} @@ -6900,8 +6927,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm@11.5.2: - resolution: {integrity: sha512-qsEkHPw/Qdw4eA1kKVxsa5F6QeJCiLM1GaexGt/FpUpfiBxkLXVXIVtscOAeVWVe17pmYwD9Aji8dfsXR4r68w==} + npm@11.6.0: + resolution: {integrity: sha512-d/P7DbvYgYNde9Ehfeq99+13/E7E82PfZPw8uYZASr9sQ3ZhBBCA9cXSJRA1COfJ6jDLJ0K36UJnXQWhCvLXuQ==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: @@ -6975,8 +7002,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.21: - resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -7206,9 +7233,8 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-to-regexp@8.2.0: - resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} - engines: {node: '>=16'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -7297,8 +7323,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - portfinder@1.0.37: - resolution: {integrity: sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==} + portfinder@1.0.38: + resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} engines: {node: '>= 10.12'} portscanner@2.2.0: @@ -7449,8 +7475,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.18.0: - resolution: {integrity: sha512-As0BvfXxek2MbV0m7iqBmQKFnfSrzSvTM4zGipjd4cL+9f2Ccgut6RvHlc8+qBieKHqCMFy9BSI4QyveoYXTug==} + puppeteer-core@24.20.0: + resolution: {integrity: sha512-n0y/f8EYyZt4yEJkjP3Vrqf9A4qa3uYpKYdsiedIY4bxIfTw1aAJSpSVPmWBPlr1LO4cNq2hGNIBWKPhvBF68w==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -7502,9 +7528,9 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - raw-body@3.0.0: - resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} - engines: {node: '>= 0.8'} + raw-body@3.0.1: + resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} + engines: {node: '>= 0.10'} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -7540,8 +7566,8 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} regenerate@1.4.2: @@ -7554,8 +7580,8 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + regexpu-core@6.3.1: + resolution: {integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==} engines: {node: '>=4'} regjsgen@0.8.0: @@ -7682,8 +7708,8 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} run-parallel@1.2.0: @@ -7900,8 +7926,8 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} - slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} smart-buffer@4.2.0: @@ -8108,8 +8134,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -8302,8 +8328,8 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} - tree-dump@1.0.3: - resolution: {integrity: sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==} + tree-dump@1.1.0: + resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -8463,8 +8489,8 @@ packages: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} engines: {node: '>=4'} unicode-properties@1.4.1: @@ -8586,46 +8612,6 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@7.1.2: - resolution: {integrity: sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@7.1.5: resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8719,6 +8705,9 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + webdriver-bidi-protocol@0.2.8: + resolution: {integrity: sha512-KPvtVAIX8VHjLZH1KHT5GXoOaPeb0Ju+JlAcdshw6Z/gsmRtLoxt0Hw99PgJwZta7zUQaAUIHHWDRkzrPHsQTQ==} + webdriver-js-extender@2.1.0: resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} engines: {node: '>=6.9.x'} @@ -8872,8 +8861,8 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} wrappy@1.0.2: @@ -9147,7 +9136,7 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@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: @@ -9334,7 +9323,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.0': {} + '@babel/compat-data@7.28.4': {} '@babel/core@7.28.3': dependencies: @@ -9343,13 +9332,13 @@ snapshots: '@babel/generator': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) - '@babel/helpers': 7.28.3 - '@babel/parser': 7.28.3 + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9358,21 +9347,21 @@ snapshots: '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.4 + browserslist: 4.26.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -9384,7 +9373,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9393,7 +9382,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.2.0 + regexpu-core: 6.3.1 semver: 6.3.1 '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.3)': @@ -9401,7 +9390,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -9411,15 +9400,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -9428,13 +9417,13 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-plugin-utils@7.27.1': {} @@ -9443,7 +9432,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9452,20 +9441,20 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/helper-string-parser@7.27.1': {} @@ -9476,25 +9465,25 @@ snapshots: '@babel/helper-wrap-function@7.28.3': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.3': + '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 - '@babel/parser@7.28.3': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9521,7 +9510,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9555,7 +9544,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9573,7 +9562,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.3)': + '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 @@ -9594,7 +9583,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.3(@babel/core@7.28.3)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 @@ -9602,7 +9591,7 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9616,7 +9605,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9673,7 +9662,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9719,7 +9708,7 @@ snapshots: '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9752,14 +9741,14 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.3)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color @@ -9811,7 +9800,7 @@ snapshots: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.3(@babel/core@7.28.3)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 @@ -9892,7 +9881,7 @@ snapshots: '@babel/preset-env@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.4 '@babel/core': 7.28.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 @@ -9910,10 +9899,10 @@ snapshots: '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.3) '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.3) - '@babel/plugin-transform-classes': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.3) '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3) '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.3) @@ -9937,7 +9926,7 @@ snapshots: '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.3) '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3) @@ -9945,7 +9934,7 @@ snapshots: '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-regenerator': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.3) '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.3) '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.3) @@ -9970,7 +9959,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 esutils: 2.0.3 '@babel/runtime@7.28.3': {} @@ -9978,22 +9967,22 @@ snapshots: '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@babel/traverse@7.28.3': + '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 '@babel/generator': 7.28.3 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1(supports-color@10.2.2) + '@babel/types': 7.28.4 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color - '@babel/types@7.28.2': + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -10153,7 +10142,7 @@ snapshots: '@esbuild/win32-x64@0.25.9': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.33.0(jiti@1.21.7))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.33.0(jiti@1.21.7))': dependencies: eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 3.4.3 @@ -10167,7 +10156,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10181,7 +10170,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -10555,9 +10544,9 @@ snapshots: '@google-cloud/promisify': 5.0.0 '@grpc/proto-loader': 0.7.15 '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 '@types/big.js': 6.2.2 '@types/stack-trace': 0.0.33 big.js: 7.0.1 @@ -10602,7 +10591,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@grpc/proto-loader@0.7.15': dependencies: @@ -10622,46 +10611,46 @@ snapshots: '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@24.3.3)': + '@inquirer/ansi@1.0.0': {} + + '@inquirer/checkbox@4.2.4(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.3.3) - ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.3.3 '@inquirer/confirm@5.1.14(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/confirm@5.1.16(@types/node@24.3.3)': + '@inquirer/confirm@5.1.18(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/core@10.2.0(@types/node@24.3.3)': + '@inquirer/core@10.2.2(@types/node@24.3.3)': dependencies: + '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.3.3) - ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 @@ -10670,106 +10659,106 @@ snapshots: optionalDependencies: '@types/node': 24.3.3 - '@inquirer/editor@4.2.18(@types/node@24.3.3)': + '@inquirer/editor@4.2.20(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) - '@inquirer/external-editor': 1.0.1(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) + '@inquirer/external-editor': 1.0.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/expand@4.0.18(@types/node@24.3.3)': + '@inquirer/expand@4.0.20(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.3.3 - '@inquirer/external-editor@1.0.1(@types/node@24.3.3)': + '@inquirer/external-editor@1.0.2(@types/node@24.3.3)': dependencies: chardet: 2.1.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.0 optionalDependencies: '@types/node': 24.3.3 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.3.3)': + '@inquirer/input@4.2.4(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/number@3.0.18(@types/node@24.3.3)': + '@inquirer/number@3.0.20(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/password@4.0.18(@types/node@24.3.3)': + '@inquirer/password@4.0.20(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) - ansi-escapes: 4.3.2 optionalDependencies: '@types/node': 24.3.3 '@inquirer/prompts@7.8.2(@types/node@24.3.3)': dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.3) + '@inquirer/checkbox': 4.2.4(@types/node@24.3.3) '@inquirer/confirm': 5.1.14(@types/node@24.3.3) - '@inquirer/editor': 4.2.18(@types/node@24.3.3) - '@inquirer/expand': 4.0.18(@types/node@24.3.3) - '@inquirer/input': 4.2.2(@types/node@24.3.3) - '@inquirer/number': 3.0.18(@types/node@24.3.3) - '@inquirer/password': 4.0.18(@types/node@24.3.3) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.3) - '@inquirer/search': 3.1.1(@types/node@24.3.3) - '@inquirer/select': 4.3.2(@types/node@24.3.3) + '@inquirer/editor': 4.2.20(@types/node@24.3.3) + '@inquirer/expand': 4.0.20(@types/node@24.3.3) + '@inquirer/input': 4.2.4(@types/node@24.3.3) + '@inquirer/number': 3.0.20(@types/node@24.3.3) + '@inquirer/password': 4.0.20(@types/node@24.3.3) + '@inquirer/rawlist': 4.1.8(@types/node@24.3.3) + '@inquirer/search': 3.1.3(@types/node@24.3.3) + '@inquirer/select': 4.3.4(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 '@inquirer/prompts@7.8.4(@types/node@24.3.3)': dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.3) - '@inquirer/confirm': 5.1.16(@types/node@24.3.3) - '@inquirer/editor': 4.2.18(@types/node@24.3.3) - '@inquirer/expand': 4.0.18(@types/node@24.3.3) - '@inquirer/input': 4.2.2(@types/node@24.3.3) - '@inquirer/number': 3.0.18(@types/node@24.3.3) - '@inquirer/password': 4.0.18(@types/node@24.3.3) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.3) - '@inquirer/search': 3.1.1(@types/node@24.3.3) - '@inquirer/select': 4.3.2(@types/node@24.3.3) + '@inquirer/checkbox': 4.2.4(@types/node@24.3.3) + '@inquirer/confirm': 5.1.18(@types/node@24.3.3) + '@inquirer/editor': 4.2.20(@types/node@24.3.3) + '@inquirer/expand': 4.0.20(@types/node@24.3.3) + '@inquirer/input': 4.2.4(@types/node@24.3.3) + '@inquirer/number': 3.0.20(@types/node@24.3.3) + '@inquirer/password': 4.0.20(@types/node@24.3.3) + '@inquirer/rawlist': 4.1.8(@types/node@24.3.3) + '@inquirer/search': 3.1.3(@types/node@24.3.3) + '@inquirer/select': 4.3.4(@types/node@24.3.3) optionalDependencies: '@types/node': 24.3.3 - '@inquirer/rawlist@4.1.6(@types/node@24.3.3)': + '@inquirer/rawlist@4.1.8(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.3.3 - '@inquirer/search@3.1.1(@types/node@24.3.3)': + '@inquirer/search@3.1.3(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.3.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.3.3 - '@inquirer/select@4.3.2(@types/node@24.3.3)': + '@inquirer/select@4.3.4(@types/node@24.3.3)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.3.3) '@inquirer/figures': 1.0.13 '@inquirer/type': 3.0.8(@types/node@24.3.3) - ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 24.3.3 @@ -10788,7 +10777,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -10802,18 +10791,18 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -10902,7 +10891,7 @@ snapshots: express: 5.1.0 express-rate-limit: 7.5.1(express@5.1.0) pkce-challenge: 5.0.0 - raw-body: 3.0.0 + raw-body: 3.0.1 zod: 3.25.76 zod-to-json-schema: 3.24.6(zod@3.25.76) transitivePeerDependencies: @@ -11007,11 +10996,11 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@napi-rs/wasm-runtime@1.0.3': + '@napi-rs/wasm-runtime@1.0.5': dependencies: '@emnapi/core': 1.5.0 '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.0 + '@tybys/wasm-util': 0.10.1 optional: true '@nodelib/fs.scandir@2.1.5': @@ -11206,16 +11195,16 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.37.0 - '@opentelemetry/semantic-conventions@1.36.0': {} + '@opentelemetry/semantic-conventions@1.37.0': {} '@oxc-project/runtime@0.81.0': {} @@ -11328,9 +11317,9 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.8': + '@puppeteer/browsers@2.10.9': dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -11339,6 +11328,7 @@ snapshots: yargs: 17.7.2 transitivePeerDependencies: - bare-buffer + - react-native-b4a - supports-color '@rolldown/binding-android-arm64@1.0.0-beta.32': @@ -11373,7 +11363,7 @@ snapshots: '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.5 optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': @@ -11393,7 +11383,7 @@ snapshots: '@rollup/plugin-commonjs@28.0.6(rollup@4.46.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + '@rollup/pluginutils': 5.3.0(rollup@4.46.2) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.3) @@ -11405,13 +11395,13 @@ snapshots: '@rollup/plugin-json@6.1.0(rollup@4.46.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + '@rollup/pluginutils': 5.3.0(rollup@4.46.2) optionalDependencies: rollup: 4.46.2 '@rollup/plugin-node-resolve@15.3.1(rollup@4.46.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + '@rollup/pluginutils': 5.3.0(rollup@4.46.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 @@ -11421,7 +11411,7 @@ snapshots: '@rollup/plugin-node-resolve@16.0.1(rollup@4.46.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + '@rollup/pluginutils': 5.3.0(rollup@4.46.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 @@ -11437,6 +11427,14 @@ snapshots: optionalDependencies: rollup: 4.46.2 + '@rollup/pluginutils@5.3.0(rollup@4.46.2)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.46.2 + '@rollup/rollup-android-arm-eabi@4.46.2': optional: true @@ -11497,7 +11495,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.50.0': + '@rollup/wasm-node@4.50.1': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11541,8 +11539,8 @@ snapshots: '@stylistic/eslint-plugin@5.3.1(eslint@9.33.0(jiti@1.21.7))': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.41.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) + '@typescript-eslint/types': 8.43.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11568,53 +11566,53 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 - '@tybys/wasm-util@0.10.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true '@types/accepts@1.3.7': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/babel__code-frame@7.0.6': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/big.js@6.2.2': {} '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/serve-static': 1.15.8 chokidar: 3.6.0 @@ -11624,11 +11622,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11636,11 +11634,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/content-disposition@0.5.9': {} @@ -11651,11 +11649,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/debounce@1.2.4': {} @@ -11663,7 +11661,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/ejs@3.1.5': {} @@ -11683,14 +11681,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -11712,11 +11710,11 @@ snapshots: '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/http-assert@1.5.6': {} @@ -11724,7 +11722,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/ini@4.1.1': {} @@ -11750,7 +11748,7 @@ snapshots: '@types/karma@6.3.9': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11770,13 +11768,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11793,14 +11791,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 - '@types/node@22.18.0': + '@types/node@22.18.3': dependencies: undici-types: 6.21.0 @@ -11812,7 +11810,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11820,11 +11818,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11837,12 +11835,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/q@0.0.32': {} @@ -11858,14 +11856,12 @@ snapshots: '@types/selenium-webdriver@3.0.26': {} - '@types/semver@7.7.0': {} - '@types/semver@7.7.1': {} '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/serve-index@1.9.4': dependencies: @@ -11874,23 +11870,23 @@ snapshots: '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/stack-trace@0.0.33': {} @@ -11907,17 +11903,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11928,11 +11924,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 '@types/yargs-parser@21.0.3': {} @@ -11944,7 +11940,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -11970,7 +11966,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) eslint: 9.33.0(jiti@1.21.7) typescript: 5.9.2 transitivePeerDependencies: @@ -11980,7 +11976,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -11999,7 +11995,7 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2) - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) eslint: 9.33.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 @@ -12008,7 +12004,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.41.0': {} + '@typescript-eslint/types@8.43.0': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12016,7 +12012,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -12028,7 +12024,7 @@ snapshots: '@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) '@typescript-eslint/scope-manager': 8.39.1 '@typescript-eslint/types': 8.39.1 '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) @@ -12048,7 +12044,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/loaders': 8.0.0-next-8.9 '@verdaccio/signature': 8.0.0-next-8.11 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 lodash: 4.17.21 verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: @@ -12062,7 +12058,7 @@ snapshots: '@verdaccio/config@8.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 js-yaml: 4.1.0 lodash: 4.17.21 minimatch: 7.4.6 @@ -12098,7 +12094,7 @@ snapshots: '@verdaccio/loaders@8.0.0-next-8.9': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -12121,7 +12117,7 @@ snapshots: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/logger-prettify': 8.0.0-next-8.3 colorette: 2.0.20 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -12146,7 +12142,7 @@ snapshots: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 express: 4.21.2 express-rate-limit: 5.5.1 lodash: 4.17.21 @@ -12161,7 +12157,7 @@ snapshots: dependencies: '@verdaccio/config': 8.0.0-next-8.19 '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color @@ -12172,10 +12168,11 @@ snapshots: dependencies: '@verdaccio/core': 8.0.0-next-8.19 '@verdaccio/url': 13.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 gunzip-maybe: 1.4.2 tar-stream: 3.1.7 transitivePeerDependencies: + - react-native-b4a - supports-color '@verdaccio/ui-theme@8.0.0-next-8.19': {} @@ -12183,7 +12180,7 @@ snapshots: '@verdaccio/url@13.0.0-next-8.19': dependencies: '@verdaccio/core': 8.0.0-next-8.19 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: @@ -12207,13 +12204,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12300,7 +12297,7 @@ snapshots: internal-ip: 6.2.0 nanocolors: 0.2.13 open: 8.4.2 - portfinder: 1.0.37 + portfinder: 1.0.38 transitivePeerDependencies: - bufferutil - supports-color @@ -12316,10 +12313,11 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.18.0(bufferutil@4.0.9) + puppeteer-core: 24.20.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil + - react-native-b4a - supports-color - utf-8-validate @@ -12401,11 +12399,12 @@ snapshots: diff: 5.2.0 globby: 11.1.0 nanocolors: 0.2.13 - portfinder: 1.0.37 + portfinder: 1.0.38 source-map: 0.7.6 transitivePeerDependencies: - bare-buffer - bufferutil + - react-native-b4a - supports-color - utf-8-validate @@ -12541,7 +12540,7 @@ snapshots: agent-base@6.0.2(supports-color@10.2.2): dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -12597,7 +12596,7 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@7.0.0: + ansi-escapes@7.1.0: dependencies: environment: 1.1.0 @@ -12607,7 +12606,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.0: {} + ansi-regex@6.2.2: {} ansi-styles@2.2.1: {} @@ -12615,7 +12614,7 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansis@4.1.0: {} @@ -12734,8 +12733,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.4 - caniuse-lite: 1.0.30001739 + browserslist: 4.26.0 + caniuse-lite: 1.0.30001741 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12750,7 +12749,7 @@ snapshots: aws4@1.13.2: {} - b4a@1.6.7: {} + b4a@1.7.1: {} babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)): dependencies: @@ -12760,7 +12759,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3): dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.4 '@babel/core': 7.28.3 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) semver: 6.3.1 @@ -12787,11 +12786,15 @@ snapshots: bare-events@2.6.1: optional: true - bare-fs@4.2.2: + bare-fs@4.4.4: dependencies: bare-events: 2.6.1 bare-path: 3.0.0 bare-stream: 2.7.0(bare-events@2.6.1) + bare-url: 2.2.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - react-native-b4a optional: true bare-os@3.6.2: @@ -12807,6 +12810,13 @@ snapshots: streamx: 2.22.1 optionalDependencies: bare-events: 2.6.1 + transitivePeerDependencies: + - react-native-b4a + optional: true + + bare-url@2.2.2: + dependencies: + bare-path: 3.0.0 optional: true base64-js@1.5.1: {} @@ -12815,6 +12825,8 @@ snapshots: baseline-browser-mapping@2.6.3: {} + baseline-browser-mapping@2.8.3: {} + basic-ftp@5.0.5: {} batch@0.6.1: {} @@ -12877,12 +12889,12 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 qs: 6.14.0 - raw-body: 3.0.0 + raw-body: 3.0.1 type-is: 2.0.1 transitivePeerDependencies: - supports-color @@ -12944,7 +12956,7 @@ snapshots: etag: 1.8.1 fresh: 0.5.2 fs-extra: 3.0.1 - http-proxy: 1.18.1(debug@4.4.1) + http-proxy: 1.18.1(debug@4.4.3) immutable: 3.8.2 micromatch: 4.0.8 opn: 5.3.0 @@ -12969,12 +12981,13 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.25.4: + browserslist@4.26.0: dependencies: - caniuse-lite: 1.0.30001739 - electron-to-chromium: 1.5.212 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.3 + caniuse-lite: 1.0.30001741 + electron-to-chromium: 1.5.218 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.0) browserstack@1.6.1: dependencies: @@ -13006,7 +13019,7 @@ snapshots: bundle-name@4.1.0: dependencies: - run-applescript: 7.0.0 + run-applescript: 7.1.0 bytes@3.1.2: {} @@ -13055,7 +13068,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001739: {} + caniuse-lite@1.0.30001741: {} caseless@0.12.0: {} @@ -13084,8 +13097,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} - chalk@5.6.2: {} chardet@2.1.0: {} @@ -13124,7 +13135,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13133,9 +13144,9 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@8.0.0(devtools-protocol@0.0.1475386): + chromium-bidi@8.0.0(devtools-protocol@0.0.1495869): dependencies: - devtools-protocol: 0.0.1475386 + devtools-protocol: 0.0.1495869 mitt: 3.0.1 zod: 3.25.76 @@ -13185,8 +13196,8 @@ snapshots: cliui@9.0.1: dependencies: string-width: 7.2.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 clone-deep@4.0.1: dependencies: @@ -13236,7 +13247,7 @@ snapshots: table-layout: 4.1.1 typical: 7.3.0 - commander@14.0.0: {} + commander@14.0.1: {} commander@2.20.3: {} @@ -13334,7 +13345,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.25.4 + browserslist: 4.26.0 core-util-is@1.0.2: {} @@ -13465,7 +13476,11 @@ snapshots: optionalDependencies: supports-color: 10.2.2 - debug@4.4.1(supports-color@10.2.2): + debug@4.4.1: + dependencies: + ms: 2.1.3 + + debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: @@ -13545,7 +13560,7 @@ snapshots: detect-libc@1.0.3: optional: true - detect-libc@2.0.4: + detect-libc@2.1.0: optional: true detect-node@2.1.0: {} @@ -13554,7 +13569,7 @@ snapshots: devtools-protocol@0.0.1045489: {} - devtools-protocol@0.0.1475386: {} + devtools-protocol@0.0.1495869: {} di@0.0.1: {} @@ -13644,7 +13659,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.212: {} + electron-to-chromium@1.5.218: {} emoji-regex@10.5.0: {} @@ -13683,7 +13698,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.18.0 + '@types/node': 22.18.3 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13939,7 +13954,7 @@ snapshots: eslint@9.33.0(jiti@1.21.7): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 @@ -13947,7 +13962,7 @@ snapshots: '@eslint/eslintrc': 3.3.1 '@eslint/js': 9.33.0 '@eslint/plugin-kit': 0.3.5 - '@humanfs/node': 0.16.6 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -13955,7 +13970,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14093,7 +14108,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -14121,7 +14136,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14224,7 +14239,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -14303,9 +14318,9 @@ snapshots: transitivePeerDependencies: - supports-color - follow-redirects@1.15.11(debug@4.4.1): + follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) for-each@0.3.5: dependencies: @@ -14424,7 +14439,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.1: {} + get-east-asian-width@1.4.0: {} get-intrinsic@1.3.0: dependencies: @@ -14466,7 +14481,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -14686,7 +14701,7 @@ snapshots: hosted-git-info@9.0.0: dependencies: - lru-cache: 11.1.0 + lru-cache: 11.2.1 hpack.js@2.1.6: dependencies: @@ -14748,21 +14763,21 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2(supports-color@10.2.2) - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color http-proxy-middleware@2.0.9(@types/express@4.17.23): dependencies: '@types/http-proxy': 1.17.16 - http-proxy: 1.18.1(debug@4.4.1) + http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.8 @@ -14774,18 +14789,18 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.16 - debug: 4.4.1(supports-color@10.2.2) - http-proxy: 1.18.1(debug@4.4.1) + debug: 4.4.3(supports-color@10.2.2) + http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 is-plain-object: 5.0.0 micromatch: 4.0.8 transitivePeerDependencies: - supports-color - http-proxy@1.18.1(debug@4.4.1): + http-proxy@1.18.1(debug@4.4.3): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.11(debug@4.4.1) + follow-redirects: 1.15.11(debug@4.4.3) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -14816,14 +14831,14 @@ snapshots: https-proxy-agent@5.0.1(supports-color@10.2.2): dependencies: agent-base: 6.0.2(supports-color@10.2.2) - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6(supports-color@10.2.2): dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -14841,6 +14856,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -14977,7 +14996,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.3.1 + get-east-asian-width: 1.4.0 is-generator-function@1.1.0: dependencies: @@ -15137,7 +15156,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -15147,7 +15166,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.3 - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -15162,7 +15181,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -15226,7 +15245,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15253,7 +15272,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.21 + nwsapi: 2.2.22 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -15410,7 +15429,7 @@ snapshots: dom-serialize: 2.2.1 glob: 7.2.3 graceful-fs: 4.2.11 - http-proxy: 1.18.1(debug@4.4.1) + http-proxy: 1.18.1(debug@4.4.3) isbinaryfile: 4.0.10 lodash: 4.17.21 log4js: 6.9.1 @@ -15454,7 +15473,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -15474,7 +15493,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -15553,7 +15572,7 @@ snapshots: eventemitter3: 5.0.1 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.0 + wrap-ansi: 9.0.2 lmdb@3.4.2: dependencies: @@ -15622,7 +15641,7 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 is-unicode-supported: 1.3.0 log-update@4.0.0: @@ -15634,16 +15653,16 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.0.0 + ansi-escapes: 7.1.0 cli-cursor: 5.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -15664,7 +15683,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.1.0: {} + lru-cache@11.2.1: {} lru-cache@5.1.1: dependencies: @@ -15714,13 +15733,13 @@ snapshots: media-typer@1.1.0: {} - memfs@4.38.2: + memfs@4.39.0: dependencies: '@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.0.1(tslib@2.8.1) thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.0.3(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 meow@13.2.0: {} @@ -15916,12 +15935,12 @@ snapshots: '@ampproject/remapping': 2.3.0 '@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 + '@rollup/wasm-node': 4.50.1 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.25.4 + browserslist: 4.26.0 chokidar: 4.0.3 - commander: 14.0.0 + commander: 14.0.1 dependency-graph: 1.0.0 esbuild: 0.25.9 find-cache-directory: 6.0.0 @@ -15978,7 +15997,7 @@ snapshots: node-gyp-build-optional-packages@5.2.2: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.0 optional: true node-gyp-build@4.8.4: {} @@ -15998,7 +16017,7 @@ snapshots: transitivePeerDependencies: - supports-color - node-releases@2.0.19: {} + node-releases@2.0.21: {} nopt@8.1.0: dependencies: @@ -16060,13 +16079,13 @@ snapshots: dependencies: path-key: 3.1.1 - npm@11.5.2: {} + npm@11.6.0: {} nth-check@2.1.1: dependencies: boolbase: 1.0.0 - nwsapi@2.2.21: {} + nwsapi@2.2.22: {} oauth-sign@0.9.0: {} @@ -16163,7 +16182,7 @@ snapshots: ora@8.2.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -16171,7 +16190,7 @@ snapshots: log-symbols: 6.0.0 stdin-discarder: 0.2.2 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 ordered-binary@1.6.0: optional: true @@ -16231,7 +16250,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) @@ -16325,12 +16344,12 @@ snapshots: path-scurry@2.0.0: dependencies: - lru-cache: 11.1.0 + lru-cache: 11.2.1 minipass: 7.1.2 path-to-regexp@0.1.12: {} - path-to-regexp@8.2.0: {} + path-to-regexp@8.3.0: {} path-type@4.0.0: {} @@ -16408,10 +16427,10 @@ snapshots: pluralize@8.0.0: {} - portfinder@1.0.37: + portfinder@1.0.38: dependencies: async: 3.2.6 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -16508,7 +16527,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.0 + '@types/node': 22.18.3 long: 5.3.2 protractor@7.0.0: @@ -16539,7 +16558,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 7.18.3 @@ -16596,17 +16615,19 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.18.0(bufferutil@4.0.9): + puppeteer-core@24.20.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.8 - chromium-bidi: 8.0.0(devtools-protocol@0.0.1475386) - debug: 4.4.1(supports-color@10.2.2) - devtools-protocol: 0.0.1475386 + '@puppeteer/browsers': 2.10.9 + chromium-bidi: 8.0.0(devtools-protocol@0.0.1495869) + debug: 4.4.3(supports-color@10.2.2) + devtools-protocol: 0.0.1495869 typed-query-selector: 2.12.0 + webdriver-bidi-protocol: 0.2.8 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer - bufferutil + - react-native-b4a - supports-color - utf-8-validate @@ -16672,11 +16693,11 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - raw-body@3.0.0: + raw-body@3.0.1: dependencies: bytes: 3.1.2 http-errors: 2.0.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.0 unpipe: 1.0.0 readable-stream@2.3.8: @@ -16732,7 +16753,7 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.2.0: + regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -16749,14 +16770,14 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.2.0: + regexpu-core@6.3.1: dependencies: regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 + regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 regjsparser: 0.12.0 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 + unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} @@ -16894,12 +16915,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.0)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.3)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.3 rollup@4.46.2: dependencies: @@ -16929,17 +16950,17 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.2.0 + path-to-regexp: 8.3.0 transitivePeerDependencies: - supports-color rrweb-cssom@0.8.0: {} - run-applescript@7.0.0: {} + run-applescript@7.1.0: {} run-parallel@1.2.0: dependencies: @@ -17070,7 +17091,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -17222,12 +17243,12 @@ snapshots: slice-ansi@5.0.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 is-fullwidth-code-point: 4.0.0 - slice-ansi@7.1.0: + slice-ansi@7.1.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 smart-buffer@4.2.0: {} @@ -17282,7 +17303,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -17343,7 +17364,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -17354,7 +17375,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -17432,7 +17453,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -17443,6 +17464,8 @@ snapshots: text-decoder: 1.2.3 optionalDependencies: bare-events: 2.6.1 + transitivePeerDependencies: + - react-native-b4a strict-event-emitter@0.5.1: {} @@ -17456,13 +17479,13 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 string-width@7.2.0: dependencies: emoji-regex: 10.5.0 - get-east-asian-width: 1.3.1 - strip-ansi: 7.1.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 string.prototype.trim@1.2.10: dependencies: @@ -17503,9 +17526,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.2.2 strip-bom@3.0.0: {} @@ -17554,10 +17577,11 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.2.2 + bare-fs: 4.4.4 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer + - react-native-b4a tar-stream@2.2.0: dependencies: @@ -17569,9 +17593,11 @@ snapshots: tar-stream@3.1.7: dependencies: - b4a: 1.6.7 + b4a: 1.7.1 fast-fifo: 1.3.2 streamx: 2.22.1 + transitivePeerDependencies: + - react-native-b4a tar@6.2.1: dependencies: @@ -17602,7 +17628,7 @@ snapshots: terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)): dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 @@ -17620,7 +17646,9 @@ snapshots: text-decoder@1.2.3: dependencies: - b4a: 1.6.7 + b4a: 1.7.1 + transitivePeerDependencies: + - react-native-b4a thingies@2.5.0(tslib@2.8.1): dependencies: @@ -17700,7 +17728,7 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.0.3(tslib@2.8.1): + tree-dump@1.1.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -17710,14 +17738,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.18.0)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.3)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.0 + '@types/node': 22.18.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17749,7 +17777,7 @@ snapshots: tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -17870,7 +17898,7 @@ snapshots: unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.2.0: {} + unicode-match-property-value-ecmascript@2.2.1: {} unicode-properties@1.4.1: dependencies: @@ -17902,9 +17930,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.3(browserslist@4.26.0): dependencies: - browserslist: 4.25.4 + browserslist: 4.26.0 escalade: 3.2.0 picocolors: 1.1.1 @@ -17932,7 +17960,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -17971,7 +17999,7 @@ snapshots: '@verdaccio/file-locking': 13.0.0-next-8.4 apache-md5: 1.1.8 bcryptjs: 2.4.3 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: @@ -17999,7 +18027,7 @@ snapshots: clipanion: 4.0.0-rc.4 compression: 1.8.1 cors: 2.8.5 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.1 envinfo: 7.14.0 express: 4.21.2 handlebars: 4.7.8 @@ -18013,6 +18041,7 @@ snapshots: verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: - encoding + - react-native-b4a - supports-color verror@1.10.0: @@ -18024,7 +18053,7 @@ snapshots: vite-node@3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) @@ -18042,24 +18071,6 @@ snapshots: - tsx - yaml - vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.46.2 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.3.3 - fsevents: 2.3.3 - jiti: 1.21.7 - less: 4.4.0 - sass: 1.90.0 - terser: 5.43.1 - tsx: 4.20.5 - yaml: 2.8.1 - vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 @@ -18082,14 +18093,14 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 @@ -18100,7 +18111,7 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.2(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: @@ -18142,6 +18153,8 @@ snapshots: web-vitals@4.2.4: {} + webdriver-bidi-protocol@0.2.8: {} + webdriver-js-extender@2.1.0: dependencies: '@types/selenium-webdriver': 3.0.26 @@ -18168,7 +18181,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.38.2 + memfs: 4.39.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18237,7 +18250,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.25.4 + browserslist: 4.26.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -18365,15 +18378,15 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 - wrap-ansi@9.0.0: + wrap-ansi@9.0.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} From deb3ed05968e2cf77f672bf2111044e4f2e81b80 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 16 Sep 2025 06:51:20 +0000 Subject: [PATCH 116/228] Revert "fix(@angular/build): preserve names in esbuild for improved debugging in dev mode" This reverts commit 48f425e14a1b76ba773efbd0546a9e8f34198521. Closes: #31198 (cherry picked from commit d0631c502dc1aafa6ba795d15ac6249823f497d7) --- .../src/tools/esbuild/application-code-bundle.ts | 12 ++++-------- packages/angular/build/src/tools/vite/utils.ts | 1 - .../tests/build/prerender/error-with-sourcemaps.ts | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) 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 a19c9a496067..b17029f6c5e1 100644 --- a/packages/angular/build/src/tools/esbuild/application-code-bundle.ts +++ b/packages/angular/build/src/tools/esbuild/application-code-bundle.ts @@ -607,9 +607,6 @@ function getEsBuildCommonOptions(options: NormalizedApplicationBuildOptions): Bu } } - const minifySyntax = optimizationOptions.scripts; - const minifyIdentifiers = minifySyntax && allowMangle; - return { absWorkingDir: workspaceRoot, format: 'esm', @@ -621,10 +618,9 @@ function getEsBuildCommonOptions(options: NormalizedApplicationBuildOptions): Bu metafile: true, legalComments: options.extractLicenses ? 'none' : 'eof', logLevel: options.verbose && !jsonLogs ? 'debug' : 'silent', - keepNames: !minifyIdentifiers, - minifyIdentifiers, - minifySyntax, - minifyWhitespace: minifySyntax, + minifyIdentifiers: optimizationOptions.scripts && allowMangle, + minifySyntax: optimizationOptions.scripts, + minifyWhitespace: optimizationOptions.scripts, pure: ['forwardRef'], outdir: workspaceRoot, outExtension: outExtension ? { '.js': `.${outExtension}` } : undefined, @@ -641,7 +637,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. - ...(minifySyntax ? { 'ngDevMode': 'false' } : undefined), + ...(optimizationOptions.scripts ? { '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 048386a4dc4d..2322eb210bec 100644 --- a/packages/angular/build/src/tools/vite/utils.ts +++ b/packages/angular/build/src/tools/vite/utils.ts @@ -98,7 +98,6 @@ export function getDepOptimizationConfig({ esbuildOptions: { // Set esbuild supported targets. target, - keepNames: true, supported: getFeatureSupport(target, zoneless), plugins, loader, 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 6420f7a6e5c4..8e45499f0021 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+\)/, ); } From 5b804a5feebb7d52d702d456e9328d88003c4d13 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 16 Sep 2025 05:06:15 +0000 Subject: [PATCH 117/228] build: update dependency aspect_rules_js to v2.6.0 See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index eb2bd7e8c34f..94311209ea8a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.2.0") bazel_dep(name = "rules_nodejs", version = "6.5.0") -bazel_dep(name = "aspect_rules_js", version = "2.5.0") +bazel_dep(name = "aspect_rules_js", version = "2.6.0") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index c42980fc6aff..33ccbba18f48 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -27,7 +27,8 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/MODULE.bazel": "12bb9ffdfda5b952644ffa75a69fac1e63da788ad445b056d3ccc70ad39825ac", - "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/source.json": "884ab90109fb7b92488d8187dfd8e0b93be105d2e42b06d887ab4730ba7d77da", + "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/MODULE.bazel": "5a6f8dbc5b170769453f1819d469fe54b0e4b86a0e82e13fde8e5a45438a1890", + "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/source.json": "e1e20b259d4f1b0a5d8b99d57b418c96f306e1c77f96e9ea1c9f1068a628b211", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", @@ -216,7 +217,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "D8qNgGrrdZct3S3KMxl6kgSKedwrEWvW34y5AVoV4PQ=", + "bzlTransitiveDigest": "6vavnkeAfELCEUi+QhsCGdP5zb7qANOAh0CCgHTCe/I=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -396,8 +397,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "0Kn7fvnVxLaVWd5Q+UPHLEIH0A8dYAnRoL8iW6cFIJI=", - "usagesDigest": "3AzTJAfe5XVpVUGzpKn2Vey5gSL41A/RWrCJh1bJhHQ=", + "bzlTransitiveDigest": "WRBbrDvn8YNF7RH8rEYctHQUdV1pkdsmQpjf1JcZ0MQ=", + "usagesDigest": "VyrLigWAm5f/dVn2m+/sJ67RLQ5koXcopcxYdLdxXwk=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -609,7 +610,7 @@ "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", - "usagesDigest": "nut5sNZyApCgI/gzif8dERYFw/f5M+qEHBu7l/fx+qI=", + "usagesDigest": "3AICyjhN/vrKBxRCE7X7mX6C5gCzpm/lgEYspsAZZoE=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -619,7 +620,7 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.5.0", + "aspect_rules_js": "2.6.0", "aspect_rules_ts": "3.7.0", "aspect_tools_telemetry": "0.2.8" } @@ -1122,7 +1123,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", - "usagesDigest": "mjOvYBICjfKKLbI6pc2MjfgO8uk6mk/EuI7ORlwWUGo=", + "usagesDigest": "379dqhYYyCx8bF/MzKdH1s8HbACwSZ3jgU3ppJfcJEc=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 3164bc26ccc49430792e63badb1a51cdec0794bd Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 17 Sep 2025 09:48:17 +0000 Subject: [PATCH 118/228] build: disable eslint `await-thenable` This was recently introduced and there are a number of intentional parts that our code does not conform. (cherry picked from commit 20a276cda3e75eb43c3949512e220bc730218bd6) --- eslint.config.mjs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index eeb7f6c60cd2..318b5dec3bee 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,19 +1,23 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + import { fixupConfigRules, fixupPluginRules } from '@eslint/compat'; +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; import stylistic from '@stylistic/eslint-plugin'; import typescriptEslint from '@typescript-eslint/eslint-plugin'; -import _import from 'eslint-plugin-import'; +import tsParser from '@typescript-eslint/parser'; import header from 'eslint-plugin-header'; +import _import from 'eslint-plugin-import'; import globals from 'globals'; -import tsParser from '@typescript-eslint/parser'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import js from '@eslint/js'; -import { FlatCompat } from '@eslint/eslintrc'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); const compat = new FlatCompat({ - baseDirectory: __dirname, + baseDirectory: import.meta.dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all, }); @@ -185,6 +189,7 @@ export default [ }, ], + '@typescript-eslint/await-thenable': 'off', '@typescript-eslint/ban-types': 'off', '@typescript-eslint/no-implied-eval': 'off', '@typescript-eslint/no-var-requires': 'off', From 34b88c84f694ce632ca9b45dbbff7e684ede23b7 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 17 Sep 2025 12:41:29 +0000 Subject: [PATCH 119/228] build: enable minimumReleaseAge to mitigate dependency chain attacks This change configures pnpm's `minimumReleaseAge` setting to 1 day (1440 minutes). This is a security measure to mitigate dependency chain attacks, where malicious actors publish a new version of a dependency with malicious code and then trick users into updating to it before it can be discovered and reported. By delaying the adoption of new releases, we reduce the window of opportunity for such attacks. The list of excluded packages contains trusted and frequently updated dependencies from the Angular team, which are considered safe to use without this delay. (cherry picked from commit d7998f2ee0624a2640b0d1fc412036e7bd14f867) --- package.json | 2 +- pnpm-workspace.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index eac6a4886ccf..8da3a5d1372f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "^10.0.0" + "pnpm": "10.16.1" }, "author": "Angular Authors", "license": "MIT", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 977541458634..1dbc5090eb69 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,3 +16,40 @@ packages: - modules/testing/builder - tests - tools/baseline_browserslist +# The minimum age of a release to be considered for dependency installation. +# The value is in minutes (1440 minutes = 1 day). +minimumReleaseAge: 1440 +# List of packages to exclude from the minimum release age check. +# Wildcards are not yet supported: https://github.com/pnpm/pnpm/issues/9983 +minimumReleaseAgeExclude: + - '@angular-devkit/architect' + - '@angular-devkit/build-angular' + - '@angular-devkit/build-webpack' + - '@angular-devkit/core' + - '@angular-devkit/schematics-cli' + - '@angular-devkit/schematics' + - '@angular-devkit/architect-cli' + - '@angular-devkit/architect' + - '@angular/animations' + - '@angular/benchpress' + - '@angular/cdk' + - '@angular/ng-dev' + - '@angular/cli' + - '@angular/ssr' + - '@angular/common' + - '@angular/compiler-cli' + - '@angular/compiler' + - '@angular/core' + - '@angular/forms' + - '@angular/language-service' + - '@angular/localize' + - '@angular/material' + - '@angular/material-moment-adapter' + - '@angular/platform-browser-dynamic' + - '@angular/platform-browser' + - '@angular/platform-server' + - '@angular/router' + - '@angular/service-worker' + - '@ngtools/webpack' + - '@schematics/angular' + - 'ng-packagr' From 5edb82eb176d93c7e57e32a599f27162a1e46afd Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 17 Sep 2025 13:29:45 +0000 Subject: [PATCH 120/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 42 ++++++++++++--- 9 files changed, 92 insertions(+), 64 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index ae3ac2d3fbba..2aa50a4b3123 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@35c6b5e6701396d0b2e004657b9330e6f858208b + - uses: angular/dev-infra/github-actions/branch-manager@470e655d3c0eba87948bf7c3350622f6eb9551a2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 710c1db58367..216b4810af38 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index f301917f4de6..b6b3e35cb678 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@35c6b5e6701396d0b2e004657b9330e6f858208b + - uses: angular/dev-infra/github-actions/pull-request-labeling@470e655d3c0eba87948bf7c3350622f6eb9551a2 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@35c6b5e6701396d0b2e004657b9330e6f858208b + - uses: angular/dev-infra/github-actions/post-approval-changes@470e655d3c0eba87948bf7c3350622f6eb9551a2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index f5f7ffd2bc44..b90aaf71c504 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@35c6b5e6701396d0b2e004657b9330e6f858208b + - uses: angular/dev-infra/github-actions/feature-request@470e655d3c0eba87948bf7c3350622f6eb9551a2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index f72409be0344..241ea75a9195 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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 374fad8d34fc..ffdd07b7d686 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/linting/licenses@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - 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@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@35c6b5e6701396d0b2e004657b9330e6f858208b + uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 94311209ea8a..96be27206baa 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "35c6b5e6701396d0b2e004657b9330e6f858208b", + commit = "470e655d3c0eba87948bf7c3350622f6eb9551a2", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 8da3a5d1372f..775fa660990a 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.0", "@angular/localize": "20.3.0", "@angular/material": "20.2.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#03721faa87ef097af8cb4f657e8e4becc594f727", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5c80533a1292f228111945c42a81614a03be6ab3", "@angular/platform-browser": "20.3.0", "@angular/platform-server": "20.3.0", "@angular/router": "20.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 024311e383ea..eeb4ff9c638b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.3 version: 20.2.3(b7c40be3285f79c41de79a30d2aa337c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#03721faa87ef097af8cb4f657e8e4becc594f727 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5c80533a1292f228111945c42a81614a03be6ab3 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': 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)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727} - version: 0.0.0-35c6b5e6701396d0b2e004657b9330e6f858208b + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3} + version: 0.0.0-470e655d3c0eba87948bf7c3350622f6eb9551a2 hasBin: true '@angular/platform-browser@20.3.0': @@ -2522,42 +2522,49 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.1.1': resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.1.1': resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.1.1': resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.1.1': resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.1.1': resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.1.1': resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/nice-openharmony-arm64@1.1.1': resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} @@ -2783,36 +2790,42 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-win32-arm64@2.5.1': resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} @@ -2924,21 +2937,25 @@ packages: resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} @@ -3065,56 +3082,67 @@ packages: resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.46.2': resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.46.2': resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.46.2': resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.46.2': resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-gnu@4.46.2': resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.46.2': resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.46.2': resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.46.2': resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.46.2': resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.46.2': resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.46.2': resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} @@ -9214,7 +9242,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/03721faa87ef097af8cb4f657e8e4becc594f727(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) @@ -14136,7 +14164,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: From ac7adf472e78aaeb70cc87dad2a882809aa16b33 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 17 Sep 2025 15:43:15 +0000 Subject: [PATCH 121/228] build: update pnpm to v10.17.0 pnpm v10.17.0 adds support for wildcards in 'minimumReleaseAgeExclude'. This simplifies the configuration by allowing the use of '@angular-devkit/*' and '@angular/*' instead of listing each package individually. (cherry picked from commit 2e7fd5890b6098918a9a67131a6f7709fdfa8154) --- package.json | 4 ++-- pnpm-workspace.yaml | 33 +++------------------------------ 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 775fa660990a..4e4013899323 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.16.1", + "packageManager": "pnpm@10.17.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.16.1" + "pnpm": "10.17.0" }, "author": "Angular Authors", "license": "MIT", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1dbc5090eb69..d1752e85bda6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -20,36 +20,9 @@ packages: # The value is in minutes (1440 minutes = 1 day). minimumReleaseAge: 1440 # List of packages to exclude from the minimum release age check. -# Wildcards are not yet supported: https://github.com/pnpm/pnpm/issues/9983 minimumReleaseAgeExclude: - - '@angular-devkit/architect' - - '@angular-devkit/build-angular' - - '@angular-devkit/build-webpack' - - '@angular-devkit/core' - - '@angular-devkit/schematics-cli' - - '@angular-devkit/schematics' - - '@angular-devkit/architect-cli' - - '@angular-devkit/architect' - - '@angular/animations' - - '@angular/benchpress' - - '@angular/cdk' - - '@angular/ng-dev' - - '@angular/cli' - - '@angular/ssr' - - '@angular/common' - - '@angular/compiler-cli' - - '@angular/compiler' - - '@angular/core' - - '@angular/forms' - - '@angular/language-service' - - '@angular/localize' - - '@angular/material' - - '@angular/material-moment-adapter' - - '@angular/platform-browser-dynamic' - - '@angular/platform-browser' - - '@angular/platform-server' - - '@angular/router' - - '@angular/service-worker' + - '@angular-devkit/*' + - '@angular/*' - '@ngtools/webpack' - - '@schematics/angular' + - '@schematics/*' - 'ng-packagr' From 1b05a3aa7d11f101298011ed2bdc5d33adb8316c Mon Sep 17 00:00:00 2001 From: Jan Martin Date: Wed, 17 Sep 2025 09:20:18 -0700 Subject: [PATCH 122/228] release: cut the v20.3.2 release --- CHANGELOG.md | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5baac8a54a9..079711d55f6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ + + +# 20.3.2 (2025-09-17) + + + # 20.3.1 (2025-09-11) diff --git a/package.json b/package.json index 4e4013899323..3b1c30d015f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.1", + "version": "20.3.2", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 4661ae833abe91872a3fbd77051392375a9b7c2b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 19 Sep 2025 07:27:25 +0000 Subject: [PATCH 123/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- MODULE.bazel.lock | 1 - package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 592 +++++++++--------- 12 files changed, 371 insertions(+), 378 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 2aa50a4b3123..0c8e92986077 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + - uses: angular/dev-infra/github-actions/branch-manager@7b35868fc5f723448a6a7fadab13273585d30861 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 216b4810af38..00ab4de65d94 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index b6b3e35cb678..08ff112868d3 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + - uses: angular/dev-infra/github-actions/pull-request-labeling@7b35868fc5f723448a6a7fadab13273585d30861 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + - uses: angular/dev-infra/github-actions/post-approval-changes@7b35868fc5f723448a6a7fadab13273585d30861 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index b90aaf71c504..1de1342f0195 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + - uses: angular/dev-infra/github-actions/feature-request@7b35868fc5f723448a6a7fadab13273585d30861 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 241ea75a9195..ce0083d15904 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - 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 ffdd07b7d686..5f1be11614fc 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/linting/licenses@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - 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@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@470e655d3c0eba87948bf7c3350622f6eb9551a2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 96be27206baa..615be378fb18 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "470e655d3c0eba87948bf7c3350622f6eb9551a2", + commit = "7b35868fc5f723448a6a7fadab13273585d30861", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 33ccbba18f48..d685cc340eed 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -26,7 +26,6 @@ "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299", "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", - "https://bcr.bazel.build/modules/aspect_rules_js/2.5.0/MODULE.bazel": "12bb9ffdfda5b952644ffa75a69fac1e63da788ad445b056d3ccc70ad39825ac", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/MODULE.bazel": "5a6f8dbc5b170769453f1819d469fe54b0e4b86a0e82e13fde8e5a45438a1890", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/source.json": "e1e20b259d4f1b0a5d8b99d57b418c96f306e1c77f96e9ea1c9f1068a628b211", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", diff --git a/package.json b/package.json index 3b1c30d015f9..f7c90acd37b1 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.0", - "@angular/cdk": "20.2.3", - "@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.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5c80533a1292f228111945c42a81614a03be6ab3", - "@angular/platform-browser": "20.3.0", - "@angular/platform-server": "20.3.0", - "@angular/router": "20.3.0", - "@angular/service-worker": "20.3.0", + "@angular/animations": "20.3.1", + "@angular/cdk": "20.2.4", + "@angular/common": "20.3.1", + "@angular/compiler": "20.3.1", + "@angular/compiler-cli": "20.3.1", + "@angular/core": "20.3.1", + "@angular/forms": "20.3.1", + "@angular/localize": "20.3.1", + "@angular/material": "20.2.4", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5d4094430673899dc8faf71a18caf5470016a076", + "@angular/platform-browser": "20.3.1", + "@angular/platform-server": "20.3.1", + "@angular/router": "20.3.1", + "@angular/service-worker": "20.3.1", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index d2e0b666b7de..529883266687 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.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", + "@angular/common": "20.3.1", + "@angular/compiler": "20.3.1", + "@angular/core": "20.3.1", + "@angular/platform-browser": "20.3.1", + "@angular/platform-server": "20.3.1", + "@angular/router": "20.3.1", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index a8ebd17973c7..c9e0dddb53ec 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.3.0", - "@angular/compiler-cli": "20.3.0", + "@angular/compiler": "20.3.1", + "@angular/compiler-cli": "20.3.1", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eeb4ff9c638b..77c6d6f7ec18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - 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)) + specifier: 20.3.1 + version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.3 - version: 20.2.3(@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) + specifier: 20.2.4 + version: 20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.0 - version: 20.3.0 + specifier: 20.3.1 + version: 20.3.1 '@angular/compiler-cli': - specifier: 20.3.0 - version: 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2) + specifier: 20.3.1 + version: 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) '@angular/core': - specifier: 20.3.0 - version: 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.1 + version: 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(@angular/compiler@20.3.1) '@angular/material': - specifier: 20.2.3 - version: 20.2.3(b7c40be3285f79c41de79a30d2aa337c) + specifier: 20.2.4 + version: 20.2.4(e997458c0c3ddd4908b1b075c4607fbc) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5c80533a1292f228111945c42a81614a03be6ab3 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5d4094430673899dc8faf71a18caf5470016a076 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - 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)) + specifier: 20.3.1 + version: 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.3.3) + version: 5.1.14(@types/node@24.5.1) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: 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) + version: 20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.3) + version: 7.8.2(@types/node@24.5.1) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.3))(@types/node@24.3.3)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.1))(@types/node@24.5.1)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.0 - version: 20.3.0 + specifier: 20.3.1 + version: 20.3.1 '@angular/core': - specifier: 20.3.0 - version: 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.1 + version: 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - 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)) + specifier: 20.3.1 + version: 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - 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) + specifier: 20.3.1 + version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.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) + version: 20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.3.3) + version: 7.8.2(@types/node@24.5.1) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.3.0 - version: 20.3.0 + specifier: 20.3.1 + version: 20.3.1 '@angular/compiler-cli': - specifier: 20.3.0 - version: 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2) + specifier: 20.3.1 + version: 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.0': - resolution: {integrity: sha512-rCojVsJHaReDfSB4lwcWYJAfbkFXQmcdivdN5m1NavuSlKpWoLw4fLkxkcuOXDjUEwNSb45hRI4ixcwrcuQtmw==} + '@angular/animations@20.3.1': + resolution: {integrity: sha512-mexSwaikVE2s+GDhB9fuagEvxbnKHWsqLlO7/R2nY9tTUxBO3drWe3p0D5GxG/EsEyzZU+86ED867q/JmAiVvw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.0 + '@angular/core': 20.3.1 - '@angular/cdk@20.2.3': - resolution: {integrity: sha512-gu1zzxxcwobeiH21VpphM+cPFrQX0dxGwlFx1W8eTcLYLWd9YjlTETucBrEUEWcXmRrVTXf/VcqA0rWsxd50Ow==} + '@angular/cdk@20.2.4': + resolution: {integrity: sha512-5UzrN854pnQH+Qw6XZRxx2zWkcOxKrzWPLXe+gHFxFhxWUZfJKGcTJeAj8bnmyb+C3lqBbGpoNQPQ8pFXQGEaQ==} 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.3.0': - resolution: {integrity: sha512-Il0HqdRdrmI8ufLXd49EYaa/BPqfiSqe5uuKrDxhkAdbRXwCXWsxbO/n8AwilwWn3CKLOCrEXQYKwbcFW0nYQQ==} + '@angular/common@20.3.1': + resolution: {integrity: sha512-7Ru3BO4MOBQRMu9GJS+061cUsevKNsNAMxXnQtcqEaNyntUg2v0XiMdv4I7pQGtkQjFK17bKAxQ97jqxJfqsRQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.0 + '@angular/core': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.0': - resolution: {integrity: sha512-umnZzzKw9RqDVkotYIyupJiKXQpU8knehMUBT1G3QwdeHppC+d/opxISYTkQtY/4IUAsZFLMukWIr82as0DSmw==} + '@angular/compiler-cli@20.3.1': + resolution: {integrity: sha512-aFfGHi/ApYxmvF4cCS0TypcviQ/Xy+0fwTTrLC8znPC1vObBn0DUA0I6D5dP+xlOTx8PFLkgndNYa2f6RIluvg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.0 + '@angular/compiler': 20.3.1 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.0': - resolution: {integrity: sha512-DvGDusjsDhxIX+nDzihSCGo81Fa8y94KB/bh24eyPwJWV6b0OkawFSvVwzxx8prV0UnNkCN1S/UoZXmtVZGJ4A==} + '@angular/compiler@20.3.1': + resolution: {integrity: sha512-zRYAdAG/hsJegXapKxElLU6Q5in8UG9Pbxyh90k89qsZwkuv+CfxVY5OBS2xjk1azt808++yhjfvbO/Em+HMKg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.0': - resolution: {integrity: sha512-4uH2TAMm1nXqQ9lcZyyNkjcdQ0Fjcf9Hh0HYrhMOEV6GAUHvM2I8Vr2dSQ40p/UKLEfe9+cpZ78EPocqPQCG6A==} + '@angular/core@20.3.1': + resolution: {integrity: sha512-O03k9ivZ2CvoHXiXGH5WKlWlTtxF2UGMwGXWnV54vGViHwNcvU5Z3h6Ve6mdU9dYMHK9sGljYZnkRpwI3B8mnQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.0 + '@angular/compiler': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,74 +1023,74 @@ packages: zone.js: optional: true - '@angular/forms@20.3.0': - resolution: {integrity: sha512-/KGCZUskk8imxz2e47CKe5Ykh3eqEDop0b9YUkZTvJ/dY/cdFK89RAK2xUvOlyUr2mkcByzdzyOhHaM9XEaELg==} + '@angular/forms@20.3.1': + resolution: {integrity: sha512-P7cmfK1ldXS8KuPTwwIUTZs5AxhbPNumlumq+nfNJZAxv8/PQJh2W729M/EKHG8rB8cXjoo1K+olExnJNPVDTw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.0 - '@angular/core': 20.3.0 - '@angular/platform-browser': 20.3.0 + '@angular/common': 20.3.1 + '@angular/core': 20.3.1 + '@angular/platform-browser': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.0': - resolution: {integrity: sha512-0qkBPYA5g5KcrJpNxbCqxBiY/Q8RCb3ct5EBLUwj9Og2zTz4PQ04xzRW0B+FwF4XZ0g2kJ0FNmyM8GjUBut1yg==} + '@angular/localize@20.3.1': + resolution: {integrity: sha512-7IpFPZHtD/A5M2eLrA+6NBwPIqdox8EMMDnDAN2T07sGyac8XIkFBIYYifWoS6fKA3k4tZLo8liufGsVyOF2yQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.0 - '@angular/compiler-cli': 20.3.0 + '@angular/compiler': 20.3.1 + '@angular/compiler-cli': 20.3.1 - '@angular/material@20.2.3': - resolution: {integrity: sha512-fe6abllA5VwFQTYuKjJQNQMzMakFD8CLaQsgSoUCAYnlCJ1YjMMIVAbcrMuJVlDeGz1cM9PaZgvUyCOZCMADhQ==} + '@angular/material@20.2.4': + resolution: {integrity: sha512-B1XUOL9TbBDQZpH3j2C6hEpwdokvvmoeaOI7aMTpXrNzomyXHTWZWrMybq30trB7sE7cNze1DQRiOuDXsLgnTw==} peerDependencies: - '@angular/cdk': 20.2.3 + '@angular/cdk': 20.2.4 '@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/5c80533a1292f228111945c42a81614a03be6ab3': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3} - version: 0.0.0-470e655d3c0eba87948bf7c3350622f6eb9551a2 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076} + version: 0.0.0-7b35868fc5f723448a6a7fadab13273585d30861 hasBin: true - '@angular/platform-browser@20.3.0': - resolution: {integrity: sha512-/KsgfxDwP7/KXGrLLSyg4+Xd8HxmHi5dVCu+xHfa3QjzVIvvZfWZLxQj7guRlDtg/mz+t0/OSKvSUZzOAfVzGQ==} + '@angular/platform-browser@20.3.1': + resolution: {integrity: sha512-JiQWRvyVZDH0N9p+pnMOuTFGaw7jPakWDQCJBOBBLdE6AyOiy8YPBImRMrjNNIEqg36h1a8H32rBorf2TL3ExA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.0 - '@angular/common': 20.3.0 - '@angular/core': 20.3.0 + '@angular/animations': 20.3.1 + '@angular/common': 20.3.1 + '@angular/core': 20.3.1 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.0': - resolution: {integrity: sha512-ixPyu3JEY3sgyvUdCqRbaZZA9M6KWGLZoiJPN4IszwcwCFUp3E5XOZ7mvSLzR+ZUYUml+z6ehtSPg2PM+e+CEQ==} + '@angular/platform-server@20.3.1': + resolution: {integrity: sha512-n8XQx271VIUcEBf7GltL9vTZNKsLokNJJvmtL7/o8hmueefjgmswgteCfXhWJAhZkrO6X6JQR3DKNJZ++8YBoA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.0 - '@angular/compiler': 20.3.0 - '@angular/core': 20.3.0 - '@angular/platform-browser': 20.3.0 + '@angular/common': 20.3.1 + '@angular/compiler': 20.3.1 + '@angular/core': 20.3.1 + '@angular/platform-browser': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.0': - resolution: {integrity: sha512-JshumajvPCMztz1+7r/l5tRxFL3cn2jCpr5szdc5hESkpytY4050hedd09GogL1UoIyZAjhyYLhSlMnvrgjHBA==} + '@angular/router@20.3.1': + resolution: {integrity: sha512-lwXKuGe546Pu8vw9M5TolS1EHX69dRfOnCmBOpvGVRqzDNwVT7jfIFcSn++WPs7jhi6T6RPdcVCnIbeO0IRJYQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.0 - '@angular/core': 20.3.0 - '@angular/platform-browser': 20.3.0 + '@angular/common': 20.3.1 + '@angular/core': 20.3.1 + '@angular/platform-browser': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.0': - resolution: {integrity: sha512-Z/vpsypGbn2Gani1FZrHr89PpHVq5crS+mAkv3ZvzPRdpUSSlifBRv43VpBBiH/b0bTADnrn5aohJFyWKwNdFg==} + '@angular/service-worker@20.3.1': + resolution: {integrity: sha512-IxhiFuoYqPTlLr3pM7HZngBNMoJfiL1xyGTOqsyBxA/V56NxdxxzphyxvzobPdkem9P03YtRXaTVCl6+j6+rzQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.0 + '@angular/core': 20.3.1 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -2122,8 +2122,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.19.0': - resolution: {integrity: sha512-mIMV3M/KfzzFA//0fziK472wKBJ1TdJLhozIUJKTPLyTDN1NotU+hyoHW/N0cfrcEWUK20YA0GxCeHC4z0SbMA==} + '@google/genai@1.20.0': + resolution: {integrity: sha512-QdShxO9LX35jFogy3iKprQNqgKKveux4H2QjOnyIvyHRuGi6PHiz3fjNf8Y0VPY8o5V2fHqR2XqiSVoz7yZs0w==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -2275,8 +2275,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.4': - resolution: {integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==} + '@inquirer/prompts@7.8.6': + resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2666,8 +2666,8 @@ packages: resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/core@7.0.3': - resolution: {integrity: sha512-oNXsh2ywth5aowwIa7RKtawnkdH6LgU1ztfP9AIUCQCvzysB+WeU8o2kyyosDPwBZutPpjZDKPQGIzzrfTWweQ==} + '@octokit/core@7.0.4': + resolution: {integrity: sha512-jOT8V1Ba5BdC79sKrRWDdMT5l1R+XNHTPR6CPWzUP2EcfAcvIHZWF0eAbmRcpOOP5gVIwnqNg0C4nvh6Abc3OA==} engines: {node: '>= 20'} '@octokit/endpoint@11.0.0': @@ -2692,6 +2692,9 @@ packages: '@octokit/openapi-types@25.1.0': resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + '@octokit/openapi-types@26.0.0': + resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} + '@octokit/plugin-paginate-rest@13.1.1': resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} engines: {node: '>= 20'} @@ -2704,8 +2707,8 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@16.0.0': - resolution: {integrity: sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==} + '@octokit/plugin-rest-endpoint-methods@16.1.0': + resolution: {integrity: sha512-nCsyiKoGRnhH5LkH8hJEZb9swpqOcsW+VXv1QoyUNQXJeVODG4+xM6UICEqyqe9XFr6LkL8BIiFCPev8zMDXPw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2725,6 +2728,9 @@ packages: '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + '@octokit/types@15.0.0': + resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} + '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -3395,10 +3401,6 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@6.0.0': - resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} - deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} @@ -3408,8 +3410,8 @@ packages: '@types/node@22.18.3': resolution: {integrity: sha512-gTVM8js2twdtqM+AE2PdGEe9zGQY4UvmFjan9rZcVb6FGdStfjWoWejdmy4CfWVO9rh5MiYQGZloKAGkJt8lMw==} - '@types/node@24.3.3': - resolution: {integrity: sha512-GKBNHjoNw3Kra1Qg5UXttsY5kiWMEfoHq2TmXb+b1rcm6N7B3wTrFYIf/oSZ1xNQ+hVVijgLkiDZh7jRRsh+Gw==} + '@types/node@24.5.1': + resolution: {integrity: sha512-/SQdmUP2xa+1rdx7VwB9yPq8PaKej8TD5cQ+XfKDPWWC+VDJU4rvVVagXqKUzhKjtFoNA8rXDJAkCxQPAe00+Q==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -3486,10 +3488,6 @@ packages: '@types/stack-trace@0.0.33': resolution: {integrity: sha512-O7in6531Bbvlb2KEsJ0dq0CHZvc3iWSR5ZYMtvGgnHA56VgriAN/AU2LorfmcvAl2xc9N5fbCTRyMRRl8nd74g==} - '@types/supports-color@10.0.0': - resolution: {integrity: sha512-Kpp/hhA8/pcxqBBKmOCIgvwCOJAI5y6TWTHhhqnB6KmuYlKtixKgN/Z7VzhShdgONe2jYREnTQbsrb3E0nt/OQ==} - deprecated: This is a stub types definition. supports-color provides its own type definitions, so you do not need this installed. - '@types/tapable@1.0.12': resolution: {integrity: sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==} @@ -8495,8 +8493,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.12.0: + resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -9166,28 +9164,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@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/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.3(@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/cdk@20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@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/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.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/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.0 + '@angular/compiler': 20.3.1 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9201,30 +9199,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.0': + '@angular/compiler@20.3.1': dependencies: tslib: 2.8.1 - '@angular/core@20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.0 + '@angular/compiler': 20.3.1 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/forms@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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)) + '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@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)': + '@angular/localize@20.3.1(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(@angular/compiler@20.3.1)': dependencies: - '@angular/compiler': 20.3.0 - '@angular/compiler-cli': 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2) + '@angular/compiler': 20.3.1 + '@angular/compiler-cli': 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9232,33 +9230,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.3(b7c40be3285f79c41de79a30d2aa337c)': + '@angular/material@20.2.4(e997458c0c3ddd4908b1b075c4607fbc)': dependencies: - '@angular/cdk': 20.2.3(@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)) + '@angular/cdk': 20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5c80533a1292f228111945c42a81614a03be6ab3(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.19.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.4(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@google/genai': 1.20.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.6(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) '@octokit/auth-app': 8.1.0 - '@octokit/core': 7.0.3 + '@octokit/core': 7.0.4 '@octokit/graphql': 9.0.1 '@octokit/graphql-schema': 15.26.0 - '@octokit/openapi-types': 25.1.0 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.3) - '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.3) + '@octokit/openapi-types': 26.0.0 + '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) '@octokit/request-error': 7.0.0 '@octokit/rest': 22.0.0 - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 '@pnpm/dependency-path': 1001.1.1 '@types/cli-progress': 3.11.6 '@types/ejs': 3.1.5 @@ -9266,10 +9264,8 @@ snapshots: '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 - '@types/minimatch': 6.0.0 - '@types/node': 24.3.3 + '@types/node': 24.5.1 '@types/semver': 7.7.1 - '@types/supports-color': 10.0.0 '@types/which': 3.0.4 '@types/yargs': 17.0.33 '@types/yarnpkg__lockfile': 1.1.9 @@ -9305,35 +9301,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@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))': + '@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@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/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@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/animations': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) - '@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)': + '@angular/platform-server@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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)) + '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.1 + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.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/router@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@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)) + '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@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)': + '@angular/service-worker@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.0(@angular/compiler@20.3.0)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -10599,7 +10595,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.19.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.20.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -10650,150 +10646,150 @@ snapshots: '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.2.4(@types/node@24.3.3)': + '@inquirer/checkbox@4.2.4(@types/node@24.5.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.5.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/confirm@5.1.14(@types/node@24.3.3)': + '@inquirer/confirm@5.1.14(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/confirm@5.1.18(@types/node@24.3.3)': + '@inquirer/confirm@5.1.18(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/core@10.2.2(@types/node@24.3.3)': + '@inquirer/core@10.2.2(@types/node@24.5.1)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.5.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/editor@4.2.20(@types/node@24.3.3)': + '@inquirer/editor@4.2.20(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/external-editor': 1.0.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/external-editor': 1.0.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/expand@4.0.20(@types/node@24.3.3)': + '@inquirer/expand@4.0.20(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/external-editor@1.0.2(@types/node@24.3.3)': + '@inquirer/external-editor@1.0.2(@types/node@24.5.1)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.4(@types/node@24.3.3)': + '@inquirer/input@4.2.4(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/number@3.0.20(@types/node@24.3.3)': + '@inquirer/number@3.0.20(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/password@4.0.20(@types/node@24.3.3)': + '@inquirer/password@4.0.20(@types/node@24.5.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 - - '@inquirer/prompts@7.8.2(@types/node@24.3.3)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.3.3) - '@inquirer/confirm': 5.1.14(@types/node@24.3.3) - '@inquirer/editor': 4.2.20(@types/node@24.3.3) - '@inquirer/expand': 4.0.20(@types/node@24.3.3) - '@inquirer/input': 4.2.4(@types/node@24.3.3) - '@inquirer/number': 3.0.20(@types/node@24.3.3) - '@inquirer/password': 4.0.20(@types/node@24.3.3) - '@inquirer/rawlist': 4.1.8(@types/node@24.3.3) - '@inquirer/search': 3.1.3(@types/node@24.3.3) - '@inquirer/select': 4.3.4(@types/node@24.3.3) + '@types/node': 24.5.1 + + '@inquirer/prompts@7.8.2(@types/node@24.5.1)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.5.1) + '@inquirer/confirm': 5.1.14(@types/node@24.5.1) + '@inquirer/editor': 4.2.20(@types/node@24.5.1) + '@inquirer/expand': 4.0.20(@types/node@24.5.1) + '@inquirer/input': 4.2.4(@types/node@24.5.1) + '@inquirer/number': 3.0.20(@types/node@24.5.1) + '@inquirer/password': 4.0.20(@types/node@24.5.1) + '@inquirer/rawlist': 4.1.8(@types/node@24.5.1) + '@inquirer/search': 3.1.3(@types/node@24.5.1) + '@inquirer/select': 4.3.4(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 - - '@inquirer/prompts@7.8.4(@types/node@24.3.3)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.3.3) - '@inquirer/confirm': 5.1.18(@types/node@24.3.3) - '@inquirer/editor': 4.2.20(@types/node@24.3.3) - '@inquirer/expand': 4.0.20(@types/node@24.3.3) - '@inquirer/input': 4.2.4(@types/node@24.3.3) - '@inquirer/number': 3.0.20(@types/node@24.3.3) - '@inquirer/password': 4.0.20(@types/node@24.3.3) - '@inquirer/rawlist': 4.1.8(@types/node@24.3.3) - '@inquirer/search': 3.1.3(@types/node@24.3.3) - '@inquirer/select': 4.3.4(@types/node@24.3.3) + '@types/node': 24.5.1 + + '@inquirer/prompts@7.8.6(@types/node@24.5.1)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.5.1) + '@inquirer/confirm': 5.1.18(@types/node@24.5.1) + '@inquirer/editor': 4.2.20(@types/node@24.5.1) + '@inquirer/expand': 4.0.20(@types/node@24.5.1) + '@inquirer/input': 4.2.4(@types/node@24.5.1) + '@inquirer/number': 3.0.20(@types/node@24.5.1) + '@inquirer/password': 4.0.20(@types/node@24.5.1) + '@inquirer/rawlist': 4.1.8(@types/node@24.5.1) + '@inquirer/search': 3.1.3(@types/node@24.5.1) + '@inquirer/select': 4.3.4(@types/node@24.5.1) optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/rawlist@4.1.8(@types/node@24.3.3)': + '@inquirer/rawlist@4.1.8(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/search@3.1.3(@types/node@24.3.3)': + '@inquirer/search@3.1.3(@types/node@24.5.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.5.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/select@4.3.4(@types/node@24.3.3)': + '@inquirer/select@4.3.4(@types/node@24.5.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.3.3) + '@inquirer/core': 10.2.2(@types/node@24.5.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/type': 3.0.8(@types/node@24.5.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 - '@inquirer/type@3.0.8(@types/node@24.3.3)': + '@inquirer/type@3.0.8(@types/node@24.5.1)': optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 '@isaacs/balanced-match@4.0.1': {} @@ -10879,10 +10875,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.3))(@types/node@24.3.3)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.1))(@types/node@24.5.1)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.3.3) - '@inquirer/type': 3.0.8(@types/node@24.3.3) + '@inquirer/prompts': 7.8.2(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.1) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11138,13 +11134,13 @@ snapshots: '@octokit/auth-token@6.0.0': {} - '@octokit/core@7.0.3': + '@octokit/core@7.0.4': dependencies: '@octokit/auth-token': 6.0.0 '@octokit/graphql': 9.0.1 '@octokit/request': 10.0.3 '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 @@ -11175,19 +11171,21 @@ snapshots: '@octokit/openapi-types@25.1.0': {} - '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.3)': + '@octokit/openapi-types@26.0.0': {} + + '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 7.0.3 + '@octokit/core': 7.0.4 '@octokit/types': 14.1.0 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.3)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 7.0.3 + '@octokit/core': 7.0.4 - '@octokit/plugin-rest-endpoint-methods@16.0.0(@octokit/core@7.0.3)': + '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 7.0.3 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.4 + '@octokit/types': 15.0.0 '@octokit/request-error@7.0.0': dependencies: @@ -11203,15 +11201,19 @@ snapshots: '@octokit/rest@22.0.0': dependencies: - '@octokit/core': 7.0.3 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.3) - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.3) - '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.3) + '@octokit/core': 7.0.4 + '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.4) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) '@octokit/types@14.1.0': dependencies: '@octokit/openapi-types': 25.1.0 + '@octokit/types@15.0.0': + dependencies: + '@octokit/openapi-types': 26.0.0 + '@open-draft/deferred-promise@2.2.0': {} '@open-draft/logger@0.3.0': @@ -11813,10 +11815,6 @@ snapshots: '@types/mime@1.3.5': {} - '@types/minimatch@6.0.0': - dependencies: - minimatch: 10.0.3 - '@types/node-fetch@2.6.13': dependencies: '@types/node': 22.18.3 @@ -11830,9 +11828,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.3.3': + '@types/node@24.5.1': dependencies: - undici-types: 7.10.0 + undici-types: 7.12.0 '@types/npm-package-arg@6.1.4': {} @@ -11918,10 +11916,6 @@ snapshots: '@types/stack-trace@0.0.33': {} - '@types/supports-color@10.0.0': - dependencies: - supports-color: 10.2.2 - '@types/tapable@1.0.12': {} '@types/uglify-js@3.17.5': @@ -12220,9 +12214,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12232,13 +12226,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -15958,10 +15952,10 @@ snapshots: netmask@2.0.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): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.0(@angular/compiler@20.3.0)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.50.1 ajv: 8.17.1 @@ -17903,7 +17897,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.10.0: {} + undici-types@7.12.0: {} undici@5.29.0: dependencies: @@ -18078,13 +18072,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18099,7 +18093,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18108,7 +18102,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18117,11 +18111,11 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.3.3)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18139,11 +18133,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.3)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.3.3 + '@types/node': 24.5.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 94c7ec1ed128e9f3ba4b0f32771b92fb6bcb93e9 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 18 Sep 2025 05:06:47 +0000 Subject: [PATCH 124/228] build: update rules_sass digest to 4a54e0e See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 615be378fb18..572c131ff7bd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -46,7 +46,7 @@ git_override( bazel_dep(name = "rules_sass") git_override( module_name = "rules_sass", - commit = "76078d5e9776a0080dcee496e90b88d8a6179c19", + commit = "4a54e0e4e75fc6456ff874e53fb4a78bdfeb44b9", remote = "https://github.com/devversion/rules_sass.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index d685cc340eed..451c64caf65f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -2283,7 +2283,7 @@ }, "@@rules_sass~//src/toolchain:extensions.bzl%sass": { "general": { - "bzlTransitiveDigest": "+GauQp6nWf/mHsJ/XVWUL2JTuC15MuxATrVcAgDpclc=", + "bzlTransitiveDigest": "RA58Nyrsn03Z5YmQnpmBw3mqlVck++XIrx34amsqU/E=", "usagesDigest": "FPXQ5+6+DFGdSdCMXLwFaruzstMFlLH6N0TRxi0sSH8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -2301,6 +2301,18 @@ ] } }, + "linux_arm64_sass": { + "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl", + "ruleClassName": "configure_sass", + "attributes": { + "file": "@rules_sass//src/compiler/built:sass_linux_arm", + "sha256": "", + "constraints": [ + "@@platforms//os:linux", + "@@platforms//cpu:arm64" + ] + } + }, "darwin_amd64_sass": { "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl", "ruleClassName": "configure_sass", From 24e1638e32ec014c3a74e7f02b3737af46d104cb Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 19 Sep 2025 11:35:02 +0000 Subject: [PATCH 125/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 ++-- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 232 +++++++++--------- 9 files changed, 173 insertions(+), 173 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 0c8e92986077..4fcddf947ad3 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@7b35868fc5f723448a6a7fadab13273585d30861 + - uses: angular/dev-infra/github-actions/branch-manager@ee61b6758d835c67c4c27093f71d94ebe180dff6 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00ab4de65d94..92853ba93066 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 08ff112868d3..067004e3843e 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@7b35868fc5f723448a6a7fadab13273585d30861 + - uses: angular/dev-infra/github-actions/pull-request-labeling@ee61b6758d835c67c4c27093f71d94ebe180dff6 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@7b35868fc5f723448a6a7fadab13273585d30861 + - uses: angular/dev-infra/github-actions/post-approval-changes@ee61b6758d835c67c4c27093f71d94ebe180dff6 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 1de1342f0195..51fb36abc268 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@7b35868fc5f723448a6a7fadab13273585d30861 + - uses: angular/dev-infra/github-actions/feature-request@ee61b6758d835c67c4c27093f71d94ebe180dff6 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index ce0083d15904..41ff61bfe09b 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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 5f1be11614fc..6a6a56eb2569 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/linting/licenses@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - 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@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@7b35868fc5f723448a6a7fadab13273585d30861 + uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 572c131ff7bd..89ad5da59de4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "7b35868fc5f723448a6a7fadab13273585d30861", + commit = "ee61b6758d835c67c4c27093f71d94ebe180dff6", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index f7c90acd37b1..aa13598ee38e 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.1", "@angular/localize": "20.3.1", "@angular/material": "20.2.4", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5d4094430673899dc8faf71a18caf5470016a076", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425", "@angular/platform-browser": "20.3.1", "@angular/platform-server": "20.3.1", "@angular/router": "20.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77c6d6f7ec18..6018f935577b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.4 version: 20.2.4(e997458c0c3ddd4908b1b075c4607fbc) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5d4094430673899dc8faf71a18caf5470016a076 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.1 version: 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.5.1) + version: 5.1.14(@types/node@24.5.2) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.5.1) + version: 7.8.2(@types/node@24.5.2) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.1))(@types/node@24.5.1)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.2))(@types/node@24.5.2)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.5.1) + version: 7.8.2(@types/node@24.5.2) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076} - version: 0.0.0-7b35868fc5f723448a6a7fadab13273585d30861 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425} + version: 0.0.0-ee61b6758d835c67c4c27093f71d94ebe180dff6 hasBin: true '@angular/platform-browser@20.3.1': @@ -3410,8 +3410,8 @@ packages: '@types/node@22.18.3': resolution: {integrity: sha512-gTVM8js2twdtqM+AE2PdGEe9zGQY4UvmFjan9rZcVb6FGdStfjWoWejdmy4CfWVO9rh5MiYQGZloKAGkJt8lMw==} - '@types/node@24.5.1': - resolution: {integrity: sha512-/SQdmUP2xa+1rdx7VwB9yPq8PaKej8TD5cQ+XfKDPWWC+VDJU4rvVVagXqKUzhKjtFoNA8rXDJAkCxQPAe00+Q==} + '@types/node@24.5.2': + resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -9240,13 +9240,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5d4094430673899dc8faf71a18caf5470016a076(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.20.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.6(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/prompts': 7.8.6(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) '@octokit/auth-app': 8.1.0 '@octokit/core': 7.0.4 '@octokit/graphql': 9.0.1 @@ -9264,7 +9264,7 @@ snapshots: '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 - '@types/node': 24.5.1 + '@types/node': 24.5.2 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -10646,150 +10646,150 @@ snapshots: '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.2.4(@types/node@24.5.1)': + '@inquirer/checkbox@4.2.4(@types/node@24.5.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/confirm@5.1.14(@types/node@24.5.1)': + '@inquirer/confirm@5.1.14(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/confirm@5.1.18(@types/node@24.5.1)': + '@inquirer/confirm@5.1.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/core@10.2.2(@types/node@24.5.1)': + '@inquirer/core@10.2.2(@types/node@24.5.2)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.2) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/editor@4.2.20(@types/node@24.5.1)': + '@inquirer/editor@4.2.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/external-editor': 1.0.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/external-editor': 1.0.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/expand@4.0.20(@types/node@24.5.1)': + '@inquirer/expand@4.0.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/external-editor@1.0.2(@types/node@24.5.1)': + '@inquirer/external-editor@1.0.2(@types/node@24.5.2)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.4(@types/node@24.5.1)': + '@inquirer/input@4.2.4(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/number@3.0.20(@types/node@24.5.1)': + '@inquirer/number@3.0.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/password@4.0.20(@types/node@24.5.1)': + '@inquirer/password@4.0.20(@types/node@24.5.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 - - '@inquirer/prompts@7.8.2(@types/node@24.5.1)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.5.1) - '@inquirer/confirm': 5.1.14(@types/node@24.5.1) - '@inquirer/editor': 4.2.20(@types/node@24.5.1) - '@inquirer/expand': 4.0.20(@types/node@24.5.1) - '@inquirer/input': 4.2.4(@types/node@24.5.1) - '@inquirer/number': 3.0.20(@types/node@24.5.1) - '@inquirer/password': 4.0.20(@types/node@24.5.1) - '@inquirer/rawlist': 4.1.8(@types/node@24.5.1) - '@inquirer/search': 3.1.3(@types/node@24.5.1) - '@inquirer/select': 4.3.4(@types/node@24.5.1) + '@types/node': 24.5.2 + + '@inquirer/prompts@7.8.2(@types/node@24.5.2)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) + '@inquirer/confirm': 5.1.14(@types/node@24.5.2) + '@inquirer/editor': 4.2.20(@types/node@24.5.2) + '@inquirer/expand': 4.0.20(@types/node@24.5.2) + '@inquirer/input': 4.2.4(@types/node@24.5.2) + '@inquirer/number': 3.0.20(@types/node@24.5.2) + '@inquirer/password': 4.0.20(@types/node@24.5.2) + '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) + '@inquirer/search': 3.1.3(@types/node@24.5.2) + '@inquirer/select': 4.3.4(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 - - '@inquirer/prompts@7.8.6(@types/node@24.5.1)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.5.1) - '@inquirer/confirm': 5.1.18(@types/node@24.5.1) - '@inquirer/editor': 4.2.20(@types/node@24.5.1) - '@inquirer/expand': 4.0.20(@types/node@24.5.1) - '@inquirer/input': 4.2.4(@types/node@24.5.1) - '@inquirer/number': 3.0.20(@types/node@24.5.1) - '@inquirer/password': 4.0.20(@types/node@24.5.1) - '@inquirer/rawlist': 4.1.8(@types/node@24.5.1) - '@inquirer/search': 3.1.3(@types/node@24.5.1) - '@inquirer/select': 4.3.4(@types/node@24.5.1) + '@types/node': 24.5.2 + + '@inquirer/prompts@7.8.6(@types/node@24.5.2)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) + '@inquirer/confirm': 5.1.18(@types/node@24.5.2) + '@inquirer/editor': 4.2.20(@types/node@24.5.2) + '@inquirer/expand': 4.0.20(@types/node@24.5.2) + '@inquirer/input': 4.2.4(@types/node@24.5.2) + '@inquirer/number': 3.0.20(@types/node@24.5.2) + '@inquirer/password': 4.0.20(@types/node@24.5.2) + '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) + '@inquirer/search': 3.1.3(@types/node@24.5.2) + '@inquirer/select': 4.3.4(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/rawlist@4.1.8(@types/node@24.5.1)': + '@inquirer/rawlist@4.1.8(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/search@3.1.3(@types/node@24.5.1)': + '@inquirer/search@3.1.3(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/select@4.3.4(@types/node@24.5.1)': + '@inquirer/select@4.3.4(@types/node@24.5.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.1) + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 - '@inquirer/type@3.0.8(@types/node@24.5.1)': + '@inquirer/type@3.0.8(@types/node@24.5.2)': optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 '@isaacs/balanced-match@4.0.1': {} @@ -10875,10 +10875,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.1))(@types/node@24.5.1)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.2))(@types/node@24.5.2)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.5.1) - '@inquirer/type': 3.0.8(@types/node@24.5.1) + '@inquirer/prompts': 7.8.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11828,7 +11828,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.5.1': + '@types/node@24.5.2': dependencies: undici-types: 7.12.0 @@ -12214,9 +12214,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12226,13 +12226,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -18072,13 +18072,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18093,7 +18093,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18102,7 +18102,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18111,11 +18111,11 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.5.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18133,11 +18133,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.5.2 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From d7f392bafb9aaaba23aa57d07af55164f8758221 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 22 Sep 2025 07:06:03 +0000 Subject: [PATCH 126/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 290 ++++++++++++++++++++++++------------------------- 1 file changed, 145 insertions(+), 145 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6018f935577b..56e2764f981b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,7 +90,7 @@ importers: version: 16.0.1(rollup@4.46.2) '@stylistic/eslint-plugin': specifier: ^5.0.0 - version: 5.3.1(eslint@9.33.0(jiti@1.21.7)) + version: 5.4.0(eslint@9.33.0(jiti@1.21.7)) '@types/babel__core': specifier: 7.20.5 version: 7.20.5 @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.18.3 + version: 22.18.6 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.18.3)(rollup@4.46.2) + version: 0.5.3(@types/node@22.18.6)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.4.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.18.3)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.6)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.26.0 + version: 4.26.2 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 - version: 4.26.0 + version: 4.26.2 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -2131,8 +2131,8 @@ packages: '@modelcontextprotocol/sdk': optional: true - '@grpc/grpc-js@1.13.4': - resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + '@grpc/grpc-js@1.14.0': + resolution: {integrity: sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==} engines: {node: '>=12.10.0'} '@grpc/grpc-js@1.9.15': @@ -2380,8 +2380,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.11.0': - resolution: {integrity: sha512-nLqSTAYwpk+5ZQIoVp7pfd/oSKNWlEdvTq2LzVA4r2wtWZg6v+5u0VgBOaDJuUfNOuw/4Ysq6glN5QKSrOCgrA==} + '@jsonjoy.com/json-pack@1.14.0': + resolution: {integrity: sha512-LpWbYgVnKzphN5S6uss4M25jJ/9+m6q6UJoeN6zTkK4xAGhKsiBRPVeF7OYMWonn5repMQbE5vieRXcMUrKDKw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -2909,8 +2909,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.9': - resolution: {integrity: sha512-kUGHwABarVhvMP+zhW5zvDA7LmGcd4TwrTEBwcTQic5EebUqaK5NjC0UXLJepIFVGsr2N/Z8NJQz2JYGo1ZwxA==} + '@puppeteer/browsers@2.10.10': + resolution: {integrity: sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==} engines: {node: '>=18'} hasBin: true @@ -3165,8 +3165,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.50.1': - resolution: {integrity: sha512-3oCUcKNdkemnqy6r12UdAtfYMWywGxVHSCQvtDYeEtnOcOQC/SihSXkO6+rByH2ZhbgfeTbqLiw1NDGfJDptyg==} + '@rollup/wasm-node@4.52.0': + resolution: {integrity: sha512-ELDfd164EwuLyPLhMBMP/zUfLi5RXmCbRGQpkGqfSTNATi0WLgPo96+c1W9YGEefgR+OH1okNKV+clWhgVrwIA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3200,8 +3200,8 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@stylistic/eslint-plugin@5.3.1': - resolution: {integrity: sha512-Ykums1VYonM0TgkD0VteVq9mrlO2FhF48MDJnPyv3MktIB2ydtuhlO0AfWm7xnW1kyf5bjOqA6xc7JjviuVTxg==} + '@stylistic/eslint-plugin@5.4.0': + resolution: {integrity: sha512-UG8hdElzuBDzIbjG1QDwnYH0MQ73YLXDFHgZzB4Zh/YJfnw8XNsloVtytqzx0I2Qky9THSdpTmi8Vjn/pf/Lew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' @@ -3407,8 +3407,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.3': - resolution: {integrity: sha512-gTVM8js2twdtqM+AE2PdGEe9zGQY4UvmFjan9rZcVb6FGdStfjWoWejdmy4CfWVO9rh5MiYQGZloKAGkJt8lMw==} + '@types/node@22.18.6': + resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==} '@types/node@24.5.2': resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} @@ -3566,8 +3566,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.43.0': - resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -4110,8 +4110,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.6.1: - resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} + bare-events@2.7.0: + resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} bare-fs@4.4.4: resolution: {integrity: sha512-Q8yxM1eLhJfuM7KXVP3zjhBvtMJCYRByoTT+wHXjpdMELv0xICFJX+1w4c7csa+WZEOsq4ItJ4RGwvzid6m/dw==} @@ -4154,8 +4154,8 @@ packages: resolution: {integrity: sha512-yyFDnoo0M1qlZfWyxihEphjxleNIv1W603kwqMiBE9B6SPFgZbysvoqOpMZr/l0wmErkRbBTp4gOwljtGx/TdQ==} hasBin: true - baseline-browser-mapping@2.8.3: - resolution: {integrity: sha512-mcE+Wr2CAhHNWxXN/DdTI+n4gsPc5QpXpWnyCQWiQYIYZX+ZMJ8juXZgjRa/0/YPJo/NSsgW15/YgmI4nbysYw==} + baseline-browser-mapping@2.8.6: + resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} hasBin: true basic-ftp@5.0.5: @@ -4241,8 +4241,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.26.0: - resolution: {integrity: sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4315,8 +4315,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001741: - resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4918,8 +4918,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.218: - resolution: {integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==} + electron-to-chromium@1.5.222: + resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -4995,8 +4995,8 @@ packages: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} errorstacks@2.4.1: resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} @@ -5996,8 +5996,8 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + is-network-error@1.3.0: + resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} engines: {node: '>=16'} is-node-process@1.2.0: @@ -6597,8 +6597,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.39.0: - resolution: {integrity: sha512-tFRr2IkSXl2B6IAJsxjHIMTOsfLt9W+8+t2uNxCeQcz4tFqgQR8DYk8hlLH2HsucTctLuoHq3U0G08atyBE3yw==} + memfs@4.43.0: + resolution: {integrity: sha512-XCdhMy33sgxCwJ4JgjSasLGgOjFm9/i+IEhO03gPHroJeTBhM7ZQ1+v3j7di9nNKtcLGjVvKjHVOkTbVop/R/Q==} engines: {node: '>= 4.0.0'} meow@13.2.0: @@ -7501,8 +7501,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.20.0: - resolution: {integrity: sha512-n0y/f8EYyZt4yEJkjP3Vrqf9A4qa3uYpKYdsiedIY4bxIfTw1aAJSpSVPmWBPlr1LO4cNq2hGNIBWKPhvBF68w==} + puppeteer-core@24.22.0: + resolution: {integrity: sha512-oUeWlIg0pMz8YM5pu0uqakM+cCyYyXkHBxx9di9OUELu9X9+AYrNGGRLK9tNME3WfN3JGGqQIH3b4/E9LGek/w==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -8216,8 +8216,8 @@ packages: tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - tar-fs@3.1.0: - resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} + tar-fs@3.1.1: + resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -8308,8 +8308,8 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@4.0.3: - resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} tldts-core@6.1.86: @@ -8522,8 +8522,8 @@ packages: unicode-properties@1.4.1: resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} unicode-trie@2.0.0: @@ -8731,8 +8731,8 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} - webdriver-bidi-protocol@0.2.8: - resolution: {integrity: sha512-KPvtVAIX8VHjLZH1KHT5GXoOaPeb0Ju+JlAcdshw6Z/gsmRtLoxt0Hw99PgJwZta7zUQaAUIHHWDRkzrPHsQTQ==} + webdriver-bidi-protocol@0.2.11: + resolution: {integrity: sha512-Y9E1/oi4XMxcR8AT0ZC4OvYntl34SPgwjmELH+owjBr0korAX4jKgZULBWILGCVGdVCQ0dodTToIETozhG8zvA==} webdriver-js-extender@2.1.0: resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} @@ -9385,7 +9385,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.0 + browserslist: 4.26.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -10607,15 +10607,15 @@ snapshots: - supports-color - utf-8-validate - '@grpc/grpc-js@1.13.4': + '@grpc/grpc-js@1.14.0': dependencies: - '@grpc/proto-loader': 0.7.15 + '@grpc/proto-loader': 0.8.0 '@js-sdsl/ordered-map': 4.4.2 '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@grpc/proto-loader@0.7.15': dependencies: @@ -10850,7 +10850,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.11.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.14.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) @@ -11347,14 +11347,14 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.9': + '@puppeteer/browsers@2.10.10': dependencies: debug: 4.4.3(supports-color@10.2.2) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 semver: 7.7.2 - tar-fs: 3.1.0 + tar-fs: 3.1.1 yargs: 17.7.2 transitivePeerDependencies: - bare-buffer @@ -11525,7 +11525,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.50.1': + '@rollup/wasm-node@4.52.0': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11567,10 +11567,10 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@stylistic/eslint-plugin@5.3.1(eslint@9.33.0(jiti@1.21.7))': + '@stylistic/eslint-plugin@5.4.0(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/types': 8.44.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11603,7 +11603,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/babel__code-frame@7.0.6': {} @@ -11633,16 +11633,16 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/serve-static': 1.15.8 chokidar: 3.6.0 @@ -11652,11 +11652,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11664,11 +11664,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/content-disposition@0.5.9': {} @@ -11679,11 +11679,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/debounce@1.2.4': {} @@ -11691,7 +11691,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/ejs@3.1.5': {} @@ -11711,14 +11711,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -11740,11 +11740,11 @@ snapshots: '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/http-assert@1.5.6': {} @@ -11752,7 +11752,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/ini@4.1.1': {} @@ -11778,7 +11778,7 @@ snapshots: '@types/karma@6.3.9': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11798,13 +11798,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11817,14 +11817,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 - '@types/node@22.18.3': + '@types/node@22.18.6': dependencies: undici-types: 6.21.0 @@ -11836,7 +11836,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11844,11 +11844,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11861,12 +11861,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/q@0.0.32': {} @@ -11887,7 +11887,7 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/serve-index@1.9.4': dependencies: @@ -11896,23 +11896,23 @@ snapshots: '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/stack-trace@0.0.33': {} @@ -11925,17 +11925,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11946,11 +11946,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 '@types/yargs-parser@21.0.3': {} @@ -11962,7 +11962,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -12026,7 +12026,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.43.0': {} + '@typescript-eslint/types@8.44.0': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12252,7 +12252,7 @@ snapshots: '@vitest/spy@3.2.4': dependencies: - tinyspy: 4.0.3 + tinyspy: 4.0.4 '@vitest/utils@3.2.4': dependencies: @@ -12335,7 +12335,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.20.0(bufferutil@4.0.9) + puppeteer-core: 24.22.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12755,8 +12755,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.26.0 - caniuse-lite: 1.0.30001741 + browserslist: 4.26.2 + caniuse-lite: 1.0.30001743 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12805,14 +12805,14 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.6.1: + bare-events@2.7.0: optional: true bare-fs@4.4.4: dependencies: - bare-events: 2.6.1 + bare-events: 2.7.0 bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.6.1) + bare-stream: 2.7.0(bare-events@2.7.0) bare-url: 2.2.2 fast-fifo: 1.3.2 transitivePeerDependencies: @@ -12827,11 +12827,11 @@ snapshots: bare-os: 3.6.2 optional: true - bare-stream@2.7.0(bare-events@2.6.1): + bare-stream@2.7.0(bare-events@2.7.0): dependencies: streamx: 2.22.1 optionalDependencies: - bare-events: 2.6.1 + bare-events: 2.7.0 transitivePeerDependencies: - react-native-b4a optional: true @@ -12847,7 +12847,7 @@ snapshots: baseline-browser-mapping@2.6.3: {} - baseline-browser-mapping@2.8.3: {} + baseline-browser-mapping@2.8.6: {} basic-ftp@5.0.5: {} @@ -13003,13 +13003,13 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.26.0: + browserslist@4.26.2: dependencies: - baseline-browser-mapping: 2.8.3 - caniuse-lite: 1.0.30001741 - electron-to-chromium: 1.5.218 + baseline-browser-mapping: 2.8.6 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.222 node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.0) + update-browserslist-db: 1.1.3(browserslist@4.26.2) browserstack@1.6.1: dependencies: @@ -13090,7 +13090,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001741: {} + caniuse-lite@1.0.30001743: {} caseless@0.12.0: {} @@ -13157,7 +13157,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13367,7 +13367,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.26.0 + browserslist: 4.26.2 core-util-is@1.0.2: {} @@ -13681,7 +13681,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.218: {} + electron-to-chromium@1.5.222: {} emoji-regex@10.5.0: {} @@ -13720,7 +13720,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.18.3 + '@types/node': 22.18.6 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13762,7 +13762,7 @@ snapshots: prr: 1.0.1 optional: true - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -14158,7 +14158,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14613,7 +14613,7 @@ snapshots: google-gax@5.0.3(supports-color@10.2.2): dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@grpc/proto-loader': 0.8.0 abort-controller: 3.0.0 duplexify: 4.1.3 @@ -14646,7 +14646,7 @@ snapshots: grpc-gcp@1.0.1(protobufjs@7.5.4): dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 protobufjs: 7.5.4 gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.2): @@ -15049,7 +15049,7 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.1.0: {} + is-network-error@1.3.0: {} is-node-process@1.2.0: {} @@ -15267,7 +15267,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15755,9 +15755,9 @@ snapshots: media-typer@1.1.0: {} - memfs@4.39.0: + memfs@4.43.0: dependencies: - '@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.14.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.0.1(tslib@2.8.1) thingies: 2.5.0(tslib@2.8.1) @@ -15957,10 +15957,10 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) - '@rollup/wasm-node': 4.50.1 + '@rollup/wasm-node': 4.52.0 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.26.0 + browserslist: 4.26.2 chokidar: 4.0.3 commander: 14.0.1 dependency-graph: 1.0.0 @@ -16259,7 +16259,7 @@ snapshots: p-retry@6.2.1: dependencies: '@types/retry': 0.12.2 - is-network-error: 1.1.0 + is-network-error: 1.3.0 retry: 0.13.1 p-timeout@3.2.0: @@ -16321,7 +16321,7 @@ snapshots: parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -16549,7 +16549,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.3 + '@types/node': 22.18.6 long: 5.3.2 protractor@7.0.0: @@ -16637,14 +16637,14 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.20.0(bufferutil@4.0.9): + puppeteer-core@24.22.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.9 + '@puppeteer/browsers': 2.10.10 chromium-bidi: 8.0.0(devtools-protocol@0.0.1495869) debug: 4.4.3(supports-color@10.2.2) devtools-protocol: 0.0.1495869 typed-query-selector: 2.12.0 - webdriver-bidi-protocol: 0.2.8 + webdriver-bidi-protocol: 0.2.11 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer @@ -16937,12 +16937,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.3)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.6)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.18.3 + '@types/node': 22.18.6 rollup@4.46.2: dependencies: @@ -17485,7 +17485,7 @@ snapshots: fast-fifo: 1.3.2 text-decoder: 1.2.3 optionalDependencies: - bare-events: 2.6.1 + bare-events: 2.7.0 transitivePeerDependencies: - react-native-b4a @@ -17594,7 +17594,7 @@ snapshots: pump: 3.0.3 tar-stream: 2.2.0 - tar-fs@3.1.0: + tar-fs@3.1.1: dependencies: pump: 3.0.3 tar-stream: 3.1.7 @@ -17713,7 +17713,7 @@ snapshots: tinyrainbow@2.0.0: {} - tinyspy@4.0.3: {} + tinyspy@4.0.4: {} tldts-core@6.1.86: {} @@ -17760,14 +17760,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.18.3)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.6)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.3 + '@types/node': 22.18.6 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17918,7 +17918,7 @@ snapshots: unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 + unicode-property-aliases-ecmascript: 2.2.0 unicode-match-property-value-ecmascript@2.2.1: {} @@ -17927,7 +17927,7 @@ snapshots: base64-js: 1.5.1 unicode-trie: 2.0.0 - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-property-aliases-ecmascript@2.2.0: {} unicode-trie@2.0.0: dependencies: @@ -17952,9 +17952,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.26.0): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.26.0 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -18175,7 +18175,7 @@ snapshots: web-vitals@4.2.4: {} - webdriver-bidi-protocol@0.2.8: {} + webdriver-bidi-protocol@0.2.11: {} webdriver-js-extender@2.1.0: dependencies: @@ -18203,7 +18203,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.39.0 + memfs: 4.43.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18272,7 +18272,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.26.0 + browserslist: 4.26.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 From aa5581b7f562f703bb76daedbf22c05d899ea01e Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Tue, 26 Aug 2025 10:42:20 -0400 Subject: [PATCH 127/228] build: update rolldown to v1.0.0-beta.38 --- packages/angular/build/package.json | 2 +- .../builders/application/chunk-optimizer.ts | 3 +- pnpm-lock.yaml | 160 +++++++++--------- 3 files changed, 86 insertions(+), 79 deletions(-) diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index 6f988e9b27fc..e7dbcc6c5206 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -37,7 +37,7 @@ "parse5-html-rewriting-stream": "8.0.0", "picomatch": "4.0.3", "piscina": "5.1.3", - "rolldown": "1.0.0-beta.32", + "rolldown": "1.0.0-beta.38", "sass": "1.90.0", "semver": "7.7.2", "source-map-support": "0.5.21", diff --git a/packages/angular/build/src/builders/application/chunk-optimizer.ts b/packages/angular/build/src/builders/application/chunk-optimizer.ts index 4e37a11e03f9..0ba059df291f 100644 --- a/packages/angular/build/src/builders/application/chunk-optimizer.ts +++ b/packages/angular/build/src/builders/application/chunk-optimizer.ts @@ -252,7 +252,8 @@ export async function optimizeChunks( }); const result = await bundle.generate({ - minify: { mangle: false, compress: false, removeWhitespace: true }, + minify: { mangle: false, compress: false }, + advancedChunks: { minSize: 8192 }, sourcemap, chunkFileNames: (chunkInfo) => `${chunkInfo.name.replace(/-[a-zA-Z0-9]{8}$/, '')}-[hash].js`, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56e2764f981b..994a749293da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -404,8 +404,8 @@ importers: specifier: 5.1.3 version: 5.1.3 rolldown: - specifier: 1.0.0-beta.32 - version: 1.0.0-beta.32 + specifier: 1.0.0-beta.38 + version: 1.0.0-beta.38 sass: specifier: 1.90.0 version: 1.90.0 @@ -2760,12 +2760,8 @@ packages: resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@oxc-project/types@0.89.0': + resolution: {integrity: sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==} '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} @@ -2914,82 +2910,95 @@ packages: engines: {node: '>=18'} hasBin: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@rolldown/binding-android-arm64@1.0.0-beta.38': + resolution: {integrity: sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': + resolution: {integrity: sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@rolldown/binding-darwin-x64@1.0.0-beta.38': + resolution: {integrity: sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': + resolution: {integrity: sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': + resolution: {integrity: sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': + resolution: {integrity: sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': + resolution: {integrity: sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': + resolution: {integrity: sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': + resolution: {integrity: sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': + resolution: {integrity: sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': + resolution: {integrity: sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': + resolution: {integrity: sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': + resolution: {integrity: sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': + resolution: {integrity: sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} @@ -7515,7 +7524,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qjobs@1.2.0: @@ -7697,8 +7705,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup-license-plugin@3.0.2: @@ -11236,9 +11245,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.37.0': {} - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -11361,51 +11368,51 @@ snapshots: - react-native-b4a - supports-color - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/plugin-alias@5.1.1(rollup@4.46.2)': optionalDependencies: @@ -16901,27 +16908,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@rolldown/binding-android-arm64': 1.0.0-beta.38 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.38 + '@rolldown/binding-darwin-x64': 1.0.0-beta.38 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.38 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.38 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.38 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.38 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.38 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.38 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.38 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.38 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.38 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.38 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.38 rollup-license-plugin@3.0.2: dependencies: From 0b5cef08dc9f2f0f075098d78ae1bc262df05bc5 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 22 Sep 2025 13:37:21 +0000 Subject: [PATCH 128/228] refactor(@angular/ssr): disable streaming when rendering SSG page Streaming is not needed as this happens without network. (cherry picked from commit 2b0f6d63773144b6244dcb0be0958d900b63fa4d) --- packages/angular/ssr/src/app.ts | 75 +++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 28 deletions(-) diff --git a/packages/angular/ssr/src/app.ts b/packages/angular/ssr/src/app.ts index 946a36429fec..dd90999d287a 100644 --- a/packages/angular/ssr/src/app.ts +++ b/packages/angular/ssr/src/app.ts @@ -332,38 +332,19 @@ export class AngularServerApp { return createRedirectResponse(result.redirectTo, status); } - const { inlineCriticalCssProcessor, criticalCssLRUCache, textDecoder } = this; + if (renderMode === RenderMode.Prerender) { + const renderedHtml = await result.content(); + const finalHtml = await this.inlineCriticalCss(renderedHtml, url); + + return new Response(finalHtml, responseInit); + } // Use a stream to send the response before finishing rendering and inling critical CSS, improving performance via header flushing. const stream = new ReadableStream({ - async start(controller) { + start: async (controller) => { const renderedHtml = await result.content(); - - if (!inlineCriticalCssProcessor) { - controller.enqueue(textDecoder.encode(renderedHtml)); - controller.close(); - - return; - } - - let htmlWithCriticalCss; - try { - if (renderMode === RenderMode.Server) { - const cacheKey = await sha256(renderedHtml); - htmlWithCriticalCss = criticalCssLRUCache.get(cacheKey); - if (!htmlWithCriticalCss) { - htmlWithCriticalCss = await inlineCriticalCssProcessor.process(renderedHtml); - criticalCssLRUCache.put(cacheKey, htmlWithCriticalCss); - } - } else { - htmlWithCriticalCss = await inlineCriticalCssProcessor.process(renderedHtml); - } - } catch (error) { - // eslint-disable-next-line no-console - console.error(`An error occurred while inlining critical CSS for: ${url}.`, error); - } - - controller.enqueue(textDecoder.encode(htmlWithCriticalCss ?? renderedHtml)); + const finalHtml = await this.inlineCriticalCss(renderedHtml, url, true); + controller.enqueue(this.textDecoder.encode(finalHtml)); controller.close(); }, }); @@ -371,6 +352,44 @@ export class AngularServerApp { return new Response(stream, responseInit); } + /** + * Inlines critical CSS into the given HTML content. + * + * @param html - The HTML content to process. + * @param url - The URL associated with the request, for logging purposes. + * @param cache - A flag to indicate if the result should be cached. + * @returns A promise that resolves to the HTML with inlined critical CSS. + */ + private async inlineCriticalCss(html: string, url: URL, cache = false): Promise { + const { inlineCriticalCssProcessor, criticalCssLRUCache } = this; + + if (!inlineCriticalCssProcessor) { + return html; + } + + try { + if (!cache) { + return await inlineCriticalCssProcessor.process(html); + } + + const cacheKey = await sha256(html); + const cachedHtml = criticalCssLRUCache.get(cacheKey); + if (cachedHtml) { + return cachedHtml; + } + + const processedHtml = await inlineCriticalCssProcessor.process(html); + criticalCssLRUCache.put(cacheKey, processedHtml); + + return processedHtml; + } catch (error) { + // eslint-disable-next-line no-console + console.error(`An error occurred while inlining critical CSS for: ${url}.`, error); + + return html; + } + } + /** * Constructs the asset path on the server based on the provided HTTP request. * From a4c9a2007ab3e33b2c97fa63f0df8f8662427031 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 23 Sep 2025 10:26:33 +0000 Subject: [PATCH 129/228] fix(@angular/ssr): avoid retaining rendered HTML in memory post-request The previous implementation for server-side rendering could lead to memory leaks where the rendered HTML content was not properly garbage-collected after the HTTP request was fulfilled. This was caused by inefficiencies in the critical CSS caching and how the response stream was handled. This commit addresses the issue by: 1. Refactoring the `criticalCssLRUCache` to store `Uint8Array` directly and use a more robust caching strategy. 2. Using the request URL as the cache key to prevent storing multiple cache entries for the same resource. 3. Ensuring the response stream controller enqueues the final HTML as a `Uint8Array`, avoiding unnecessary string conversions and dangling references. These changes prevent the SSR response from being retained in memory, improving the stability and performance of the server. Closes #31277 (cherry picked from commit afa273849d0e0e62a7df2236d818bf7800c3ad13) --- packages/angular/ssr/src/app.ts | 77 +++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/packages/angular/ssr/src/app.ts b/packages/angular/ssr/src/app.ts index dd90999d287a..4895866d715b 100644 --- a/packages/angular/ssr/src/app.ts +++ b/packages/angular/ssr/src/app.ts @@ -143,13 +143,15 @@ export class AngularServerApp { private readonly textDecoder = new TextEncoder(); /** - * Cache for storing critical CSS for pages. - * Stores a maximum of MAX_INLINE_CSS_CACHE_ENTRIES entries. + * A cache that stores critical CSS to avoid re-processing for every request, improving performance. + * This cache uses a Least Recently Used (LRU) eviction policy. * - * Uses an LRU (Least Recently Used) eviction policy, meaning that when the cache is full, - * the least recently accessed page's critical CSS will be removed to make space for new entries. + * @see {@link MAX_INLINE_CSS_CACHE_ENTRIES} for the maximum number of entries this cache can hold. */ - private readonly criticalCssLRUCache = new LRUCache(MAX_INLINE_CSS_CACHE_ENTRIES); + private readonly criticalCssLRUCache = new LRUCache< + string, + { shaOfContentPreInlinedCss: string; contentWithCriticialCSS: Uint8Array } + >(MAX_INLINE_CSS_CACHE_ENTRIES); /** * Handles an incoming HTTP request by serving prerendered content, performing server-side rendering, @@ -198,7 +200,6 @@ export class AngularServerApp { * * @param request - The incoming HTTP request for serving a static page. * @param matchedRoute - The metadata of the matched route for rendering. - * If not provided, the method attempts to find a matching route based on the request URL. * @returns A promise that resolves to a `Response` object if the prerendered page is found, or `null`. */ private async handleServe( @@ -247,7 +248,6 @@ export class AngularServerApp { * * @param request - The incoming HTTP request to be processed. * @param matchedRoute - The metadata of the matched route for rendering. - * If not provided, the method attempts to find a matching route based on the request URL. * @param requestContext - Optional additional context for rendering, such as request metadata. * * @returns A promise that resolves to the rendered response, or null if no matching route is found. @@ -343,8 +343,8 @@ export class AngularServerApp { const stream = new ReadableStream({ start: async (controller) => { const renderedHtml = await result.content(); - const finalHtml = await this.inlineCriticalCss(renderedHtml, url, true); - controller.enqueue(this.textDecoder.encode(finalHtml)); + const finalHtml = await this.inlineCriticalCssWithCache(renderedHtml, url); + controller.enqueue(finalHtml); controller.close(); }, }); @@ -355,33 +355,19 @@ export class AngularServerApp { /** * Inlines critical CSS into the given HTML content. * - * @param html - The HTML content to process. - * @param url - The URL associated with the request, for logging purposes. - * @param cache - A flag to indicate if the result should be cached. + * @param html The HTML content to process. + * @param url The URL associated with the request, for logging purposes. * @returns A promise that resolves to the HTML with inlined critical CSS. */ - private async inlineCriticalCss(html: string, url: URL, cache = false): Promise { - const { inlineCriticalCssProcessor, criticalCssLRUCache } = this; + private async inlineCriticalCss(html: string, url: URL): Promise { + const { inlineCriticalCssProcessor } = this; if (!inlineCriticalCssProcessor) { return html; } try { - if (!cache) { - return await inlineCriticalCssProcessor.process(html); - } - - const cacheKey = await sha256(html); - const cachedHtml = criticalCssLRUCache.get(cacheKey); - if (cachedHtml) { - return cachedHtml; - } - - const processedHtml = await inlineCriticalCssProcessor.process(html); - criticalCssLRUCache.put(cacheKey, processedHtml); - - return processedHtml; + return await inlineCriticalCssProcessor.process(html); } catch (error) { // eslint-disable-next-line no-console console.error(`An error occurred while inlining critical CSS for: ${url}.`, error); @@ -390,6 +376,41 @@ export class AngularServerApp { } } + /** + * Inlines critical CSS into the given HTML content. + * This method uses a cache to avoid reprocessing the same HTML content multiple times. + * + * @param html The HTML content to process. + * @param url The URL associated with the request, for logging purposes. + * @returns A promise that resolves to the HTML with inlined critical CSS. + */ + private async inlineCriticalCssWithCache( + html: string, + url: URL, + ): Promise> { + const { inlineCriticalCssProcessor, criticalCssLRUCache, textDecoder } = this; + + if (!inlineCriticalCssProcessor) { + return textDecoder.encode(html); + } + + const cacheKey = url.toString(); + const cached = criticalCssLRUCache.get(cacheKey); + const shaOfContentPreInlinedCss = await sha256(html); + if (cached?.shaOfContentPreInlinedCss === shaOfContentPreInlinedCss) { + return cached.contentWithCriticialCSS; + } + + const processedHtml = await this.inlineCriticalCss(html, url); + const finalHtml = textDecoder.encode(processedHtml); + criticalCssLRUCache.put(cacheKey, { + shaOfContentPreInlinedCss, + contentWithCriticialCSS: finalHtml, + }); + + return finalHtml; + } + /** * Constructs the asset path on the server based on the provided HTTP request. * From 3ed3b7cf78d5fb26d8de87d2d6bf268ed35fcc41 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 23 Sep 2025 15:36:49 +0000 Subject: [PATCH 130/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 89ad5da59de4..678278ff48ef 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -25,7 +25,7 @@ single_version_override( version = "1.5.3", ) -bazel_dep(name = "aspect_bazel_lib", version = "2.21.1") +bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") @@ -53,7 +53,7 @@ git_override( bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", - commit = "8ee9ae3216ef26516c8ef20537c89857343cdc3a", + commit = "6749ba4c0dc5e04536369fa91fdb2d827b6705ff", remote = "https://github.com/devversion/rules_browsers.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 451c64caf65f..4c3c6374ff0f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -16,7 +16,8 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/source.json": "cb7d22ce044efa47c6e251107a35b8a919f5cd35254190d825adff1b7ae21e6e", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/MODULE.bazel": "276347663a25b0d5bd6cad869252bea3e160c4d980e764b15f3bae7f80b30624", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/source.json": "f42051fa42629f0e59b7ac2adf0a55749144b11f1efcd8c697f0ee247181e526", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", @@ -216,7 +217,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "6vavnkeAfELCEUi+QhsCGdP5zb7qANOAh0CCgHTCe/I=", + "bzlTransitiveDigest": "vmy9g9SEtzBm7P+a19lslJkVMPbwO857cmH5ZZMWaPc=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -396,7 +397,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "WRBbrDvn8YNF7RH8rEYctHQUdV1pkdsmQpjf1JcZ0MQ=", + "bzlTransitiveDigest": "BZ1QxfApFDl/gTOUNdVuajx6Dm/RCMb80c+ykawEKTc=", "usagesDigest": "VyrLigWAm5f/dVn2m+/sJ67RLQ5koXcopcxYdLdxXwk=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, From 94583c5ffa2a6e332104422f1ce2558889a33659 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 23 Sep 2025 20:38:03 +0000 Subject: [PATCH 131/228] build: update pnpm to v10.17.1 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index aa13598ee38e..309ce2aa8b7e 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.17.0", + "packageManager": "pnpm@10.17.1", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.17.0" + "pnpm": "10.17.1" }, "author": "Angular Authors", "license": "MIT", From b7f92da7835c14b568d07dfb3313802704f28cfd Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Tue, 23 Sep 2025 20:53:55 +0200 Subject: [PATCH 132/228] fix(@schematics/angular): add `__screenshots__/` to `.gitignore` Vitest Browser mode generates screenshots on failed tests by default. (cherry picked from commit 3af4dcbbf4019e13a9547a404516502cf4eda736) --- .../schematics/angular/workspace/files/__dot__gitignore.template | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/schematics/angular/workspace/files/__dot__gitignore.template b/packages/schematics/angular/workspace/files/__dot__gitignore.template index cc7b141350ff..b1d225e26e57 100644 --- a/packages/schematics/angular/workspace/files/__dot__gitignore.template +++ b/packages/schematics/angular/workspace/files/__dot__gitignore.template @@ -36,6 +36,7 @@ yarn-error.log /libpeerconnection.log testem.log /typings +__screenshots__/ # System files .DS_Store From 2b454422116057f09bc9427c0aedc7d29f111bdb Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 24 Sep 2025 13:26:23 -0700 Subject: [PATCH 133/228] release: cut the v20.3.3 release --- CHANGELOG.md | 18 ++++++++++++++++++ package.json | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 079711d55f6f..f5e252a50ce1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ + + +# 20.3.3 (2025-09-24) + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------- | +| [b7f92da78](https://github.com/angular/angular-cli/commit/b7f92da7835c14b568d07dfb3313802704f28cfd) | fix | add `__screenshots__/` to `.gitignore` | + +### @angular/ssr + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------------------- | +| [a4c9a2007](https://github.com/angular/angular-cli/commit/a4c9a2007ab3e33b2c97fa63f0df8f8662427031) | fix | avoid retaining rendered HTML in memory post-request | + + + # 20.3.2 (2025-09-17) diff --git a/package.json b/package.json index 309ce2aa8b7e..2c7229f58d53 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.2", + "version": "20.3.3", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From e510ff828f033478d8e1720050a7b3d75d551e16 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 24 Sep 2025 07:29:04 +0000 Subject: [PATCH 134/228] fix(@angular/build): mark `InjectionToken` as pure for improved tree-shaking `new InjectionToken(...)` is not considered pure by default by build tools, which prevents it from being tree-shaken when unused. This can lead to unused services being included in production bundles if they are provided as a default value for a token. This change marks `new InjectionToken(...)` calls as pure. The `InjectionToken` constructor is side-effect free; its only purpose is to create a token for the dependency injection system. Marking it as pure is safe and allows build tools like esbuild to tree-shake unused tokens and their dependencies. Closes #31270 (cherry picked from commit 65562114cdf725fa52f6d805f26a1aa265b9badb) --- .../babel/plugins/pure-toplevel-functions.ts | 39 ++++++++++++++++--- .../plugins/pure-toplevel-functions_spec.ts | 34 +++++++++++++++- .../esbuild/javascript-transformer-worker.ts | 20 +++++----- 3 files changed, 74 insertions(+), 19 deletions(-) diff --git a/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions.ts b/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions.ts index ce47977a74e3..5aec104a38d2 100644 --- a/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions.ts +++ b/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions.ts @@ -6,12 +6,17 @@ * found in the LICENSE file at https://angular.dev/license */ -import type { PluginObj } from '@babel/core'; +import type { NodePath, PluginObj, PluginPass, types } from '@babel/core'; import annotateAsPure from '@babel/helper-annotate-as-pure'; import * as tslib from 'tslib'; /** - * A cached set of TypeScript helper function names used by the helper name matcher utility function. + * A set of constructor names that are considered to be side-effect free. + */ +const sideEffectFreeConstructors = new Set(['InjectionToken']); + +/** + * A set of TypeScript helper function names used by the helper name matcher utility function. */ const tslibHelpers = new Set(Object.keys(tslib).filter((h) => h.startsWith('__'))); @@ -44,15 +49,23 @@ function isBabelHelperName(name: string): boolean { return babelHelpers.has(name); } +interface ExtendedPluginPass extends PluginPass { + opts: { topLevelSafeMode?: boolean }; +} + /** * A babel plugin factory function for adding the PURE annotation to top-level new and call expressions. - * * @returns A babel plugin object instance. */ export default function (): PluginObj { return { visitor: { - CallExpression(path) { + CallExpression(path: NodePath, state: ExtendedPluginPass) { + const { topLevelSafeMode = false } = state.opts; + if (topLevelSafeMode) { + return; + } + // If the expression has a function parent, it is not top-level if (path.getFunctionParent()) { return; @@ -65,6 +78,7 @@ export default function (): PluginObj { ) { return; } + // Do not annotate TypeScript helpers emitted by the TypeScript compiler or Babel helpers. // They are intended to cause side effects. if ( @@ -76,9 +90,22 @@ export default function (): PluginObj { annotateAsPure(path); }, - NewExpression(path) { + NewExpression(path: NodePath, state: ExtendedPluginPass) { // If the expression has a function parent, it is not top-level - if (!path.getFunctionParent()) { + if (path.getFunctionParent()) { + return; + } + + const { topLevelSafeMode = false } = state.opts; + + if (!topLevelSafeMode) { + annotateAsPure(path); + + return; + } + + const callee = path.get('callee'); + if (callee.isIdentifier() && sideEffectFreeConstructors.has(callee.node.name)) { annotateAsPure(path); } }, diff --git a/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions_spec.ts b/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions_spec.ts index 891f794f43d5..0966a67d068a 100644 --- a/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions_spec.ts +++ b/packages/angular/build/src/tools/babel/plugins/pure-toplevel-functions_spec.ts @@ -7,23 +7,24 @@ */ import { transformSync } from '@babel/core'; -// eslint-disable-next-line import/no-extraneous-dependencies import { format } from 'prettier'; import pureTopLevelPlugin from './pure-toplevel-functions'; function testCase({ input, expected, + options, }: { input: string; expected: string; + options?: { topLevelSafeMode: boolean }; }): jasmine.ImplementationCallback { return async () => { const result = transformSync(input, { configFile: false, babelrc: false, compact: true, - plugins: [pureTopLevelPlugin], + plugins: [[pureTopLevelPlugin, options]], }); if (!result?.code) { fail('Expected babel to return a transform result.'); @@ -152,4 +153,33 @@ describe('pure-toplevel-functions Babel plugin', () => { }; `), ); + + describe('topLevelSafeMode: true', () => { + it( + 'annotates top-level `new InjectionToken` expressions', + testCase({ + input: `const result = new InjectionToken('abc');`, + expected: `const result = /*#__PURE__*/ new InjectionToken('abc');`, + options: { topLevelSafeMode: true }, + }), + ); + + it( + 'does not annotate other top-level `new` expressions', + testCase({ + input: 'const result = new SomeClass();', + expected: 'const result = new SomeClass();', + options: { topLevelSafeMode: true }, + }), + ); + + it( + 'does not annotate top-level function calls', + testCase({ + input: 'const result = someCall();', + expected: 'const result = someCall();', + options: { topLevelSafeMode: true }, + }), + ); + }); }); diff --git a/packages/angular/build/src/tools/esbuild/javascript-transformer-worker.ts b/packages/angular/build/src/tools/esbuild/javascript-transformer-worker.ts index 8fa551b38ba2..c9e882850a64 100644 --- a/packages/angular/build/src/tools/esbuild/javascript-transformer-worker.ts +++ b/packages/angular/build/src/tools/esbuild/javascript-transformer-worker.ts @@ -78,21 +78,19 @@ async function transformWithBabel( } if (options.advancedOptimizations) { - const sideEffectFree = options.sideEffects === false; - const safeAngularPackage = - sideEffectFree && /[\\/]node_modules[\\/]@angular[\\/]/.test(filename); - const { adjustStaticMembers, adjustTypeScriptEnums, elideAngularMetadata, markTopLevelPure } = await import('../babel/plugins'); - if (safeAngularPackage) { - plugins.push(markTopLevelPure); - } + const sideEffectFree = options.sideEffects === false; + const safeAngularPackage = + sideEffectFree && /[\\/]node_modules[\\/]@angular[\\/]/.test(filename); - plugins.push(elideAngularMetadata, adjustTypeScriptEnums, [ - adjustStaticMembers, - { wrapDecorators: sideEffectFree }, - ]); + plugins.push( + [markTopLevelPure, { topLevelSafeMode: !safeAngularPackage }], + elideAngularMetadata, + adjustTypeScriptEnums, + [adjustStaticMembers, { wrapDecorators: sideEffectFree }], + ); } // If no additional transformations are needed, return the data directly From bc6b631146c719a337c937e95c7cc5ebca29254b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 24 Sep 2025 07:29:23 +0000 Subject: [PATCH 135/228] fix(@angular-devkit/build-angular): mark `InjectionToken` as pure for improved tree-shaking `new InjectionToken(...)` is not considered pure by default by build tools, which prevents it from being tree-shaken when unused. This can lead to unused services being included in production bundles if they are provided as a default value for a token. This change marks `new InjectionToken(...)` calls as pure. The `InjectionToken` constructor is side-effect free; its only purpose is to create a token for the dependency injection system. Marking it as pure is safe and allows build tools like esbuild to tree-shake unused tokens and their dependencies. Closes #31270 (cherry picked from commit acd785afc956efad56b03402085ff94855b9fcc6) --- .../src/tools/babel/presets/application.ts | 16 +++++++--------- .../src/tools/babel/webpack-loader.ts | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/tools/babel/presets/application.ts b/packages/angular_devkit/build_angular/src/tools/babel/presets/application.ts index 83ec20a0a8ea..5810269ad386 100644 --- a/packages/angular_devkit/build_angular/src/tools/babel/presets/application.ts +++ b/packages/angular_devkit/build_angular/src/tools/babel/presets/application.ts @@ -57,7 +57,7 @@ export interface ApplicationPresetOptions { inputSourceMap: unknown; }; optimize?: { - pureTopLevel: boolean; + topLevelSafeMode: boolean; wrapDecorators: boolean; }; @@ -220,14 +220,12 @@ export default function (api: unknown, options: ApplicationPresetOptions) { elideAngularMetadata, markTopLevelPure, } = require('@angular/build/private'); - if (options.optimize.pureTopLevel) { - plugins.push(markTopLevelPure); - } - - plugins.push(elideAngularMetadata, adjustTypeScriptEnums, [ - adjustStaticMembers, - { wrapDecorators: options.optimize.wrapDecorators }, - ]); + plugins.push( + [markTopLevelPure, { topLevelSafeMode: options.optimize.topLevelSafeMode }], + elideAngularMetadata, + adjustTypeScriptEnums, + [adjustStaticMembers, { wrapDecorators: options.optimize.wrapDecorators }], + ); } if (options.instrumentCode) { diff --git a/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts b/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts index a3e0746d8ccc..71e0188853d2 100644 --- a/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts +++ b/packages/angular_devkit/build_angular/src/tools/babel/webpack-loader.ts @@ -138,7 +138,7 @@ export default custom(() => { customOptions.optimize = { // Angular packages provide additional tested side effects guarantees and can use // otherwise unsafe optimizations. (@angular/platform-server/init) however has side-effects. - pureTopLevel: AngularPackage && sideEffectFree, + topLevelSafeMode: !(AngularPackage && sideEffectFree), // JavaScript modules that are marked as side effect free are considered to have // no decorators that contain non-local effects. wrapDecorators: sideEffectFree, From 31dc1656020c2899377302eebc74e43366b14f3a Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 25 Sep 2025 12:48:23 +0000 Subject: [PATCH 136/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 503 +++++++++--------- 10 files changed, 329 insertions(+), 328 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 4fcddf947ad3..d36aa5c3c623 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + - uses: angular/dev-infra/github-actions/branch-manager@08d451f9b4e900928b65cd31234693ef9a994492 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92853ba93066..76bd89944f57 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 067004e3843e..d4517cef5a41 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + - uses: angular/dev-infra/github-actions/pull-request-labeling@08d451f9b4e900928b65cd31234693ef9a994492 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + - uses: angular/dev-infra/github-actions/post-approval-changes@08d451f9b4e900928b65cd31234693ef9a994492 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 51fb36abc268..5b91b150ebde 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + - uses: angular/dev-infra/github-actions/feature-request@08d451f9b4e900928b65cd31234693ef9a994492 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 41ff61bfe09b..e2f176ae54fc 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - 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 6a6a56eb2569..04c8d17b5086 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/linting/licenses@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - 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@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@ee61b6758d835c67c4c27093f71d94ebe180dff6 + uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - 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/package.json b/package.json index 2c7229f58d53..5abcf3802037 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.1", - "@angular/cdk": "20.2.4", - "@angular/common": "20.3.1", - "@angular/compiler": "20.3.1", - "@angular/compiler-cli": "20.3.1", - "@angular/core": "20.3.1", - "@angular/forms": "20.3.1", - "@angular/localize": "20.3.1", - "@angular/material": "20.2.4", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425", - "@angular/platform-browser": "20.3.1", - "@angular/platform-server": "20.3.1", - "@angular/router": "20.3.1", - "@angular/service-worker": "20.3.1", + "@angular/animations": "20.3.2", + "@angular/cdk": "20.2.5", + "@angular/common": "20.3.2", + "@angular/compiler": "20.3.2", + "@angular/compiler-cli": "20.3.2", + "@angular/core": "20.3.2", + "@angular/forms": "20.3.2", + "@angular/localize": "20.3.2", + "@angular/material": "20.2.5", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156", + "@angular/platform-browser": "20.3.2", + "@angular/platform-server": "20.3.2", + "@angular/router": "20.3.2", + "@angular/service-worker": "20.3.2", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 529883266687..c4b4438fd6e6 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.3.1", - "@angular/compiler": "20.3.1", - "@angular/core": "20.3.1", - "@angular/platform-browser": "20.3.1", - "@angular/platform-server": "20.3.1", - "@angular/router": "20.3.1", + "@angular/common": "20.3.2", + "@angular/compiler": "20.3.2", + "@angular/core": "20.3.2", + "@angular/platform-browser": "20.3.2", + "@angular/platform-server": "20.3.2", + "@angular/router": "20.3.2", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index c9e0dddb53ec..aeb0394cf7bb 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.3.1", - "@angular/compiler-cli": "20.3.1", + "@angular/compiler": "20.3.2", + "@angular/compiler-cli": "20.3.2", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 994a749293da..f0f017ebc011 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.1 - version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.2 + version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.4 - version: 20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.5 + version: 20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.1 - version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.1 - version: 20.3.1 + specifier: 20.3.2 + version: 20.3.2 '@angular/compiler-cli': - specifier: 20.3.1 - version: 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) + specifier: 20.3.2 + version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) '@angular/core': - specifier: 20.3.1 - version: 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.2 + version: 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.1 - version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.1 - version: 20.3.1(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(@angular/compiler@20.3.1) + specifier: 20.3.2 + version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) '@angular/material': - specifier: 20.2.4 - version: 20.2.4(e997458c0c3ddd4908b1b075c4607fbc) + specifier: 20.2.5 + version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.1 - version: 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.2 + version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.1 - version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.1 - version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.1 - version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(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.3.1 - version: 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.1 - version: 20.3.1 + specifier: 20.3.2 + version: 20.3.2 '@angular/core': - specifier: 20.3.1 - version: 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.2 + version: 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.1 - version: 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.2 + version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.1 - version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.1 - version: 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.2 + version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(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.3.1 - version: 20.3.1 + specifier: 20.3.2 + version: 20.3.2 '@angular/compiler-cli': - specifier: 20.3.1 - version: 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) + specifier: 20.3.2 + version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.1': - resolution: {integrity: sha512-mexSwaikVE2s+GDhB9fuagEvxbnKHWsqLlO7/R2nY9tTUxBO3drWe3p0D5GxG/EsEyzZU+86ED867q/JmAiVvw==} + '@angular/animations@20.3.2': + resolution: {integrity: sha512-za7onSElEUbaI9iS8j7nKf8FjyvVng6wFsb2ZuHxr71dMgnYkqPfMu0KMP+mkZ3yUVc//7SllXcSkGBHShyCcw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.1 + '@angular/core': 20.3.2 - '@angular/cdk@20.2.4': - resolution: {integrity: sha512-5UzrN854pnQH+Qw6XZRxx2zWkcOxKrzWPLXe+gHFxFhxWUZfJKGcTJeAj8bnmyb+C3lqBbGpoNQPQ8pFXQGEaQ==} + '@angular/cdk@20.2.5': + resolution: {integrity: sha512-1cpR/5jeKXLR1D+PsEvRn0QhSWD3/AjtbugJF5nlx/7L90YXhNFCmNAxAkdFKSn4YIDoPwMHgvOpS7yb51wohQ==} 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.3.1': - resolution: {integrity: sha512-7Ru3BO4MOBQRMu9GJS+061cUsevKNsNAMxXnQtcqEaNyntUg2v0XiMdv4I7pQGtkQjFK17bKAxQ97jqxJfqsRQ==} + '@angular/common@20.3.2': + resolution: {integrity: sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.1 + '@angular/core': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.1': - resolution: {integrity: sha512-aFfGHi/ApYxmvF4cCS0TypcviQ/Xy+0fwTTrLC8znPC1vObBn0DUA0I6D5dP+xlOTx8PFLkgndNYa2f6RIluvg==} + '@angular/compiler-cli@20.3.2': + resolution: {integrity: sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.1 + '@angular/compiler': 20.3.2 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.1': - resolution: {integrity: sha512-zRYAdAG/hsJegXapKxElLU6Q5in8UG9Pbxyh90k89qsZwkuv+CfxVY5OBS2xjk1azt808++yhjfvbO/Em+HMKg==} + '@angular/compiler@20.3.2': + resolution: {integrity: sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.1': - resolution: {integrity: sha512-O03k9ivZ2CvoHXiXGH5WKlWlTtxF2UGMwGXWnV54vGViHwNcvU5Z3h6Ve6mdU9dYMHK9sGljYZnkRpwI3B8mnQ==} + '@angular/core@20.3.2': + resolution: {integrity: sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.1 + '@angular/compiler': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,74 +1023,74 @@ packages: zone.js: optional: true - '@angular/forms@20.3.1': - resolution: {integrity: sha512-P7cmfK1ldXS8KuPTwwIUTZs5AxhbPNumlumq+nfNJZAxv8/PQJh2W729M/EKHG8rB8cXjoo1K+olExnJNPVDTw==} + '@angular/forms@20.3.2': + resolution: {integrity: sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.1 - '@angular/core': 20.3.1 - '@angular/platform-browser': 20.3.1 + '@angular/common': 20.3.2 + '@angular/core': 20.3.2 + '@angular/platform-browser': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.1': - resolution: {integrity: sha512-7IpFPZHtD/A5M2eLrA+6NBwPIqdox8EMMDnDAN2T07sGyac8XIkFBIYYifWoS6fKA3k4tZLo8liufGsVyOF2yQ==} + '@angular/localize@20.3.2': + resolution: {integrity: sha512-RZMHgLZV1Aka7rUKvQbg08Dn+dMyVBEGTlUS6/bTDoB1Xq2UE9L8YKmlnEDQyzveO5vTsPvZZQRL4iLc4IokzQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.1 - '@angular/compiler-cli': 20.3.1 + '@angular/compiler': 20.3.2 + '@angular/compiler-cli': 20.3.2 - '@angular/material@20.2.4': - resolution: {integrity: sha512-B1XUOL9TbBDQZpH3j2C6hEpwdokvvmoeaOI7aMTpXrNzomyXHTWZWrMybq30trB7sE7cNze1DQRiOuDXsLgnTw==} + '@angular/material@20.2.5': + resolution: {integrity: sha512-zgmHqPykH3InEsVmNSpcVicXLWcYKHIt9Nv/J86K3NZDw4/IQgpfujnr7IotLwc9VpgI4Cl7Jbo95tFVFQAYmw==} peerDependencies: - '@angular/cdk': 20.2.4 + '@angular/cdk': 20.2.5 '@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/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425} - version: 0.0.0-ee61b6758d835c67c4c27093f71d94ebe180dff6 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156} + version: 0.0.0-08d451f9b4e900928b65cd31234693ef9a994492 hasBin: true - '@angular/platform-browser@20.3.1': - resolution: {integrity: sha512-JiQWRvyVZDH0N9p+pnMOuTFGaw7jPakWDQCJBOBBLdE6AyOiy8YPBImRMrjNNIEqg36h1a8H32rBorf2TL3ExA==} + '@angular/platform-browser@20.3.2': + resolution: {integrity: sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.1 - '@angular/common': 20.3.1 - '@angular/core': 20.3.1 + '@angular/animations': 20.3.2 + '@angular/common': 20.3.2 + '@angular/core': 20.3.2 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.1': - resolution: {integrity: sha512-n8XQx271VIUcEBf7GltL9vTZNKsLokNJJvmtL7/o8hmueefjgmswgteCfXhWJAhZkrO6X6JQR3DKNJZ++8YBoA==} + '@angular/platform-server@20.3.2': + resolution: {integrity: sha512-D7tf5S5xxQQUDtw/dkMa2XePnxHwyZElN5FQP99ByiEy9PjT1iFjyKuP9jjHsI4Nmi+Juq0F1uo4azPfPaV/3w==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.1 - '@angular/compiler': 20.3.1 - '@angular/core': 20.3.1 - '@angular/platform-browser': 20.3.1 + '@angular/common': 20.3.2 + '@angular/compiler': 20.3.2 + '@angular/core': 20.3.2 + '@angular/platform-browser': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.1': - resolution: {integrity: sha512-lwXKuGe546Pu8vw9M5TolS1EHX69dRfOnCmBOpvGVRqzDNwVT7jfIFcSn++WPs7jhi6T6RPdcVCnIbeO0IRJYQ==} + '@angular/router@20.3.2': + resolution: {integrity: sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.1 - '@angular/core': 20.3.1 - '@angular/platform-browser': 20.3.1 + '@angular/common': 20.3.2 + '@angular/core': 20.3.2 + '@angular/platform-browser': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.1': - resolution: {integrity: sha512-IxhiFuoYqPTlLr3pM7HZngBNMoJfiL1xyGTOqsyBxA/V56NxdxxzphyxvzobPdkem9P03YtRXaTVCl6+j6+rzQ==} + '@angular/service-worker@20.3.2': + resolution: {integrity: sha512-SdaJ61JrliZLHEQ7kY2L98FLsVcti9+GeKODJUsHpnS2dv9RVSmWKJSa01kLsdOY/6wc1h5EHwkTg1iGHK0aew==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.1 + '@angular/core': 20.3.2 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -1881,8 +1881,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@firebase/ai@2.2.1': - resolution: {integrity: sha512-0VWlkGB18oDhwMqsgxpt/usMsyjnH3a7hTvQPcAbk7VhFg0QZMDX60mQKfLTFKrB5VwmlaIdVsSZznsTY2S0wA==} + '@firebase/ai@2.3.0': + resolution: {integrity: sha512-rVZgf4FszXPSFVIeWLE8ruLU2JDmPXw4XgghcC0x/lK9veGJIyu+DvyumjreVhW/RwD3E5cNPWxQunzylhf/6w==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -1919,15 +1919,15 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/app-compat@0.5.2': - resolution: {integrity: sha512-cn+U27GDaBS/irsbvrfnPZdcCzeZPRGKieSlyb7vV6LSOL6mdECnB86PgYjYGxSNg8+U48L/NeevTV1odU+mOQ==} + '@firebase/app-compat@0.5.3': + resolution: {integrity: sha512-rRK9YOvgsAU/+edjgubL1q1FyCMjBZZs+fAWtD36tklawkh6WZV07sNLVSceuni+a21oby6xoad+3R8dfztOrA==} engines: {node: '>=20.0.0'} '@firebase/app-types@0.9.3': resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - '@firebase/app@0.14.2': - resolution: {integrity: sha512-Ecx2ig/JLC9ayIQwZHqm41Tzlf4c1WUuFhFUZB1y+JIJqDRE579x7Uil7tKT8MwDpOPwrK5ZtpxdSsrfy/LF8Q==} + '@firebase/app@0.14.3': + resolution: {integrity: sha512-by1leTfZkwGycPKRWpc+p5/IhpnOj8zaScVi4RRm9fMoFYS3IE87Wzx1Yf/ruVYowXOEuLqYY3VmJw5tU3+0Bg==} engines: {node: '>=20.0.0'} '@firebase/auth-compat@0.6.0': @@ -1975,8 +1975,8 @@ packages: resolution: {integrity: sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==} engines: {node: '>=20.0.0'} - '@firebase/firestore-compat@0.4.1': - resolution: {integrity: sha512-BjalPTDh/K0vmR/M/DE148dpIqbcfvtFVTietbUDWDWYIl9YH0TTVp/EwXRbZwswPxyjx4GdHW61GB2AYVz1SQ==} + '@firebase/firestore-compat@0.4.2': + resolution: {integrity: sha512-cy7ov6SpFBx+PHwFdOOjbI7kH00uNKmIFurAn560WiPCZXy9EMnil1SOG7VF4hHZKdenC+AHtL4r3fNpirpm0w==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app-compat': 0.x @@ -1987,8 +1987,8 @@ packages: '@firebase/app-types': 0.x '@firebase/util': 1.x - '@firebase/firestore@4.9.1': - resolution: {integrity: sha512-PYVUTkhC9y8pydrqC3O1Oc4AMfkGSWdmuH9xgPJjiEbpUIUPQ4J8wJhyuash+o2u+axmyNRFP8ULNUKb+WzBzQ==} + '@firebase/firestore@4.9.2': + resolution: {integrity: sha512-iuA5+nVr/IV/Thm0Luoqf2mERUvK9g791FZpUJV1ZGXO6RL2/i/WFJUj5ZTVXy5pRjpWYO+ZzPcReNrlilmztA==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x @@ -2053,16 +2053,16 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/remote-config-compat@0.2.19': - resolution: {integrity: sha512-y7PZAb0l5+5oIgLJr88TNSelxuASGlXyAKj+3pUc4fDuRIdPNBoONMHaIUa9rlffBR5dErmaD2wUBJ7Z1a513Q==} + '@firebase/remote-config-compat@0.2.20': + resolution: {integrity: sha512-P/ULS9vU35EL9maG7xp66uljkZgcPMQOxLj3Zx2F289baTKSInE6+YIkgHEi1TwHoddC/AFePXPpshPlEFkbgg==} peerDependencies: '@firebase/app-compat': 0.x - '@firebase/remote-config-types@0.4.0': - resolution: {integrity: sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==} + '@firebase/remote-config-types@0.5.0': + resolution: {integrity: sha512-vI3bqLoF14L/GchtgayMiFpZJF+Ao3uR8WCde0XpYNkSokDpAKca2DxvcfeZv7lZUqkUwQPL2wD83d3vQ4vvrg==} - '@firebase/remote-config@0.6.6': - resolution: {integrity: sha512-Yelp5xd8hM4NO1G1SuWrIk4h5K42mNwC98eWZ9YLVu6Z0S6hFk1mxotAdCRmH2luH8FASlYgLLq6OQLZ4nbnCA==} + '@firebase/remote-config@0.7.0': + resolution: {integrity: sha512-dX95X6WlW7QlgNd7aaGdjAIZUiQkgWgNS+aKNu4Wv92H1T8Ue/NDUjZHd9xb8fHxLXIHNZeco9/qbZzr500MjQ==} peerDependencies: '@firebase/app': 0.x @@ -2088,8 +2088,8 @@ packages: resolution: {integrity: sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==} engines: {node: '>=20.0.0'} - '@firebase/webchannel-wrapper@1.0.4': - resolution: {integrity: sha512-6m8+P+dE/RPl4OPzjTxcTbQ0rGeRyeTvAi9KwIffBVCiAMKrfXfLZaqD1F+m8t4B5/Q5aHsMozOgirkH1F5oMQ==} + '@firebase/webchannel-wrapper@1.0.5': + resolution: {integrity: sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==} '@glideapps/ts-necessities@2.2.3': resolution: {integrity: sha512-gXi0awOZLHk3TbW55GZLCPP6O+y/b5X1pBXKBVckFONSwF1z1E5ND2BGJsghQFah+pW7pkkyFb2VhUQI2qhL5w==} @@ -5352,8 +5352,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase@12.2.1: - resolution: {integrity: sha512-UkuW2ZYaq/QuOQ24bfaqmkVqoBFhkA/ptATfPuRtc5vdm+zhwc3mfZBwFe6LqH9yrCN/6rAblgxKz2/0tDvA7w==} + firebase@12.3.0: + resolution: {integrity: sha512-/JVja0IDO8zPETGv4TvvBwo7RwcQFz+RQ3JBETNtUSeqsDdI9G7fhRTkCy1sPKnLzW0xpm/kL8GOj6ncndTT3g==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -7524,6 +7524,7 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qjobs@1.2.0: @@ -9173,28 +9174,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.1 + '@angular/compiler': 20.3.2 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9208,30 +9209,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.1': + '@angular/compiler@20.3.2': dependencies: tslib: 2.8.1 - '@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.1 + '@angular/compiler': 20.3.2 zone.js: 0.15.1 - '@angular/forms@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.1(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(@angular/compiler@20.3.1)': + '@angular/localize@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2)': dependencies: - '@angular/compiler': 20.3.1 - '@angular/compiler-cli': 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) + '@angular/compiler': 20.3.2 + '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9239,17 +9240,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.4(e997458c0c3ddd4908b1b075c4607fbc)': + '@angular/material@20.2.5(a59442ec553cb9c5cd8cee29e8e1722c)': dependencies: - '@angular/cdk': 20.2.4(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(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/3ccf58f623d08e4bd4eef9e5e8ee51dd0ba0b425(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) @@ -9287,7 +9288,7 @@ snapshots: ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 - firebase: 12.2.1 + firebase: 12.3.0 folder-hash: 4.1.1(supports-color@10.2.2) git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) jasmine: 5.10.0 @@ -9310,35 +9311,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.1)(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.1 - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.2 + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.1(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.1(@angular/animations@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.1(@angular/core@20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.1(@angular/compiler@20.3.1)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -10225,9 +10226,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@firebase/ai@2.2.1(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': + '@firebase/ai@2.3.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/app-check-interop-types': 0.3.3 '@firebase/app-types': 0.9.3 '@firebase/component': 0.7.0 @@ -10235,11 +10236,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/analytics': 0.10.18(@firebase/app@0.14.2) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.3) '@firebase/analytics-types': 0.8.3 - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10248,20 +10249,20 @@ snapshots: '@firebase/analytics-types@0.8.3': {} - '@firebase/analytics@0.10.18(@firebase/app@0.14.2)': + '@firebase/analytics@0.10.18(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-check': 0.11.0(@firebase/app@0.14.2) + '@firebase/app-check': 0.11.0(@firebase/app@0.14.3) '@firebase/app-check-types': 0.5.3 - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10273,17 +10274,17 @@ snapshots: '@firebase/app-check-types@0.5.3': {} - '@firebase/app-check@0.11.0(@firebase/app@0.14.2)': + '@firebase/app-check@0.11.0(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-compat@0.5.2': + '@firebase/app-compat@0.5.3': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10291,7 +10292,7 @@ snapshots: '@firebase/app-types@0.9.3': {} - '@firebase/app@0.14.2': + '@firebase/app@0.14.3': dependencies: '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10299,10 +10300,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': + '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 - '@firebase/auth': 1.11.0(@firebase/app@0.14.2) + '@firebase/app-compat': 0.5.3 + '@firebase/auth': 1.11.0(@firebase/app@0.14.3) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 @@ -10319,9 +10320,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/auth@1.11.0(@firebase/app@0.14.2)': + '@firebase/auth@1.11.0(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10332,9 +10333,9 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/data-connect@0.3.11(@firebase/app@0.14.2)': + '@firebase/data-connect@0.3.11(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10365,11 +10366,11 @@ snapshots: faye-websocket: 0.11.4 tslib: 2.8.1 - '@firebase/firestore-compat@0.4.1(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': + '@firebase/firestore-compat@0.4.2(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 - '@firebase/firestore': 4.9.1(@firebase/app@0.14.2) + '@firebase/firestore': 4.9.2(@firebase/app@0.14.3) '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10382,22 +10383,22 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/firestore@4.9.1(@firebase/app@0.14.2)': + '@firebase/firestore@4.9.2(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 - '@firebase/webchannel-wrapper': 1.0.4 + '@firebase/webchannel-wrapper': 1.0.5 '@grpc/grpc-js': 1.9.15 '@grpc/proto-loader': 0.7.15 tslib: 2.8.1 - '@firebase/functions-compat@0.4.1(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/functions-compat@0.4.1(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 - '@firebase/functions': 0.13.1(@firebase/app@0.14.2) + '@firebase/functions': 0.13.1(@firebase/app@0.14.3) '@firebase/functions-types': 0.6.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10406,9 +10407,9 @@ snapshots: '@firebase/functions-types@0.6.3': {} - '@firebase/functions@0.13.1(@firebase/app@0.14.2)': + '@firebase/functions@0.13.1(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/app-check-interop-types': 0.3.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 @@ -10416,11 +10417,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': + '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10432,9 +10433,9 @@ snapshots: dependencies: '@firebase/app-types': 0.9.3 - '@firebase/installations@0.6.19(@firebase/app@0.14.2)': + '@firebase/installations@0.6.19(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 idb: 7.1.1 @@ -10444,11 +10445,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 - '@firebase/messaging': 0.12.23(@firebase/app@0.14.2) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.3) '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: @@ -10456,22 +10457,22 @@ snapshots: '@firebase/messaging-interop-types@0.2.3': {} - '@firebase/messaging@0.12.23(@firebase/app@0.14.2)': + '@firebase/messaging@0.12.23(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) '@firebase/messaging-interop-types': 0.2.3 '@firebase/util': 1.13.0 idb: 7.1.1 tslib: 2.8.1 - '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/performance': 0.7.9(@firebase/app@0.14.2) + '@firebase/performance': 0.7.9(@firebase/app@0.14.3) '@firebase/performance-types': 0.2.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10480,44 +10481,44 @@ snapshots: '@firebase/performance-types@0.2.3': {} - '@firebase/performance@0.7.9(@firebase/app@0.14.2)': + '@firebase/performance@0.7.9(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 web-vitals: 4.2.4 - '@firebase/remote-config-compat@0.2.19(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2)': + '@firebase/remote-config-compat@0.2.20(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.2) - '@firebase/remote-config-types': 0.4.0 + '@firebase/remote-config': 0.7.0(@firebase/app@0.14.3) + '@firebase/remote-config-types': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: - '@firebase/app' - '@firebase/remote-config-types@0.4.0': {} + '@firebase/remote-config-types@0.5.0': {} - '@firebase/remote-config@0.6.6(@firebase/app@0.14.2)': + '@firebase/remote-config@0.7.0(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2)': + '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': dependencies: - '@firebase/app-compat': 0.5.2 + '@firebase/app-compat': 0.5.3 '@firebase/component': 0.7.0 - '@firebase/storage': 0.14.0(@firebase/app@0.14.2) + '@firebase/storage': 0.14.0(@firebase/app@0.14.3) '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10530,9 +10531,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/storage@0.14.0(@firebase/app@0.14.2)': + '@firebase/storage@0.14.0(@firebase/app@0.14.3)': dependencies: - '@firebase/app': 0.14.2 + '@firebase/app': 0.14.3 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10541,7 +10542,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/webchannel-wrapper@1.0.4': {} + '@firebase/webchannel-wrapper@1.0.5': {} '@glideapps/ts-necessities@2.2.3': {} @@ -14165,7 +14166,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14298,35 +14299,35 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase@12.2.1: + firebase@12.3.0: dependencies: - '@firebase/ai': 2.2.1(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) - '@firebase/analytics': 0.10.18(@firebase/app@0.14.2) - '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/app': 0.14.2 - '@firebase/app-check': 0.11.0(@firebase/app@0.14.2) - '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/app-compat': 0.5.2 + '@firebase/ai': 2.3.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) + '@firebase/analytics': 0.10.18(@firebase/app@0.14.3) + '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/app': 0.14.3 + '@firebase/app-check': 0.11.0(@firebase/app@0.14.3) + '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/app-compat': 0.5.3 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.2) - '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) - '@firebase/data-connect': 0.3.11(@firebase/app@0.14.2) + '@firebase/auth': 1.11.0(@firebase/app@0.14.3) + '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) + '@firebase/data-connect': 0.3.11(@firebase/app@0.14.3) '@firebase/database': 1.1.0 '@firebase/database-compat': 2.1.0 - '@firebase/firestore': 4.9.1(@firebase/app@0.14.2) - '@firebase/firestore-compat': 0.4.1(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) - '@firebase/functions': 0.13.1(@firebase/app@0.14.2) - '@firebase/functions-compat': 0.4.1(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/installations': 0.6.19(@firebase/app@0.14.2) - '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) - '@firebase/messaging': 0.12.23(@firebase/app@0.14.2) - '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/performance': 0.7.9(@firebase/app@0.14.2) - '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/remote-config': 0.6.6(@firebase/app@0.14.2) - '@firebase/remote-config-compat': 0.2.19(@firebase/app-compat@0.5.2)(@firebase/app@0.14.2) - '@firebase/storage': 0.14.0(@firebase/app@0.14.2) - '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.2)(@firebase/app-types@0.9.3)(@firebase/app@0.14.2) + '@firebase/firestore': 4.9.2(@firebase/app@0.14.3) + '@firebase/firestore-compat': 0.4.2(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) + '@firebase/functions': 0.13.1(@firebase/app@0.14.3) + '@firebase/functions-compat': 0.4.1(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.3) + '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/performance': 0.7.9(@firebase/app@0.14.3) + '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/remote-config': 0.7.0(@firebase/app@0.14.3) + '@firebase/remote-config-compat': 0.2.20(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) + '@firebase/storage': 0.14.0(@firebase/app@0.14.3) + '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) '@firebase/util': 1.13.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -15959,10 +15960,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.1(@angular/compiler@20.3.1)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) '@rollup/wasm-node': 4.52.0 ajv: 8.17.1 From 64229097095924e45444528366adef6ce2c20dbe Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 25 Sep 2025 21:05:38 +0000 Subject: [PATCH 137/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 8 files changed, 62 insertions(+), 62 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index d36aa5c3c623..e6942d6a95e5 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/branch-manager@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76bd89944f57..5129c8329d86 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d4517cef5a41..7e7d59b8f61d 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/pull-request-labeling@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/post-approval-changes@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 5b91b150ebde..805d232b2812 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/feature-request@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index e2f176ae54fc..abfb491629ad 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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 04c8d17b5086..8febb820705d 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/linting/licenses@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - 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/package.json b/package.json index 5abcf3802037..d2a52f840b8f 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.2", "@angular/localize": "20.3.2", "@angular/material": "20.2.5", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#8d333e8e2c48ff99a1a3ca633c1d6a456c082c55", "@angular/platform-browser": "20.3.2", "@angular/platform-server": "20.3.2", "@angular/router": "20.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0f017ebc011..50c8bd7ce3d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.5 version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#8d333e8e2c48ff99a1a3ca633c1d6a456c082c55 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.2 version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156} - version: 0.0.0-08d451f9b4e900928b65cd31234693ef9a994492 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55} + version: 0.0.0-715d1659cb1128762a84a8c41d7bd6fb6071ddd7 hasBin: true '@angular/platform-browser@20.3.2': @@ -9250,7 +9250,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 1940e17a434a5e49f1143d70e97858428188aa60 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 25 Sep 2025 10:40:14 +0000 Subject: [PATCH 138/228] build: update all github actions See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/pr.yml | 2 +- .github/workflows/scorecard.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 40fb506b29de..dcb4fd2a02ad 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@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 + uses: github/codeql-action/init@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 + uses: github/codeql-action/analyze@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8febb820705d..80b35ec24022 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 - name: Setup ESLint Caching - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: .eslintcache key: ${{ runner.os }}-${{ hashFiles('.eslintrc.json') }} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 24132b0bb481..3a85b4f55faa 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@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 + uses: github/codeql-action/upload-sarif@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 with: sarif_file: results.sarif From a6a82163261f71860ae2da0290622c29d682e19b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 16:33:29 +0000 Subject: [PATCH 139/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- MODULE.bazel.lock | 8 +-- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 10 files changed, 67 insertions(+), 67 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index e6942d6a95e5..814cf9a4974f 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + - uses: angular/dev-infra/github-actions/branch-manager@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5129c8329d86..12d20d99791a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 7e7d59b8f61d..014598037b27 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + - uses: angular/dev-infra/github-actions/pull-request-labeling@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + - uses: angular/dev-infra/github-actions/post-approval-changes@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 805d232b2812..78879a86d41b 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + - uses: angular/dev-infra/github-actions/feature-request@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index abfb491629ad..0234e35454e8 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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 80b35ec24022..e65321f168d2 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/linting/licenses@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - 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@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 678278ff48ef..4c8397ead41a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "ee61b6758d835c67c4c27093f71d94ebe180dff6", + commit = "99cb49d8f4240fcd51f93c6f05f52c869dd50d9a", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 4c3c6374ff0f..1654933521e7 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,7 +15,6 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/MODULE.bazel": "276347663a25b0d5bd6cad869252bea3e160c4d980e764b15f3bae7f80b30624", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/source.json": "f42051fa42629f0e59b7ac2adf0a55749144b11f1efcd8c697f0ee247181e526", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", @@ -59,7 +58,8 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", @@ -217,7 +217,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "vmy9g9SEtzBm7P+a19lslJkVMPbwO857cmH5ZZMWaPc=", + "bzlTransitiveDigest": "NeP8heP5Z49UtK5ZkdaSGN2wdf2vyTLxJfpSPeyvV24=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -397,7 +397,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "BZ1QxfApFDl/gTOUNdVuajx6Dm/RCMb80c+ykawEKTc=", + "bzlTransitiveDigest": "eebwHza1XBCmrNmoTUnW56khfYFfcwZpPWjM1Nvu3sk=", "usagesDigest": "VyrLigWAm5f/dVn2m+/sJ67RLQ5koXcopcxYdLdxXwk=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, diff --git a/package.json b/package.json index d2a52f840b8f..d19147c8db3d 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.2", "@angular/localize": "20.3.2", "@angular/material": "20.2.5", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#8d333e8e2c48ff99a1a3ca633c1d6a456c082c55", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#05831615b5579240d8407d44e30bcc3a42d77d10", "@angular/platform-browser": "20.3.2", "@angular/platform-server": "20.3.2", "@angular/router": "20.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 50c8bd7ce3d2..6f9b59d3eab2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.5 version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#8d333e8e2c48ff99a1a3ca633c1d6a456c082c55 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#05831615b5579240d8407d44e30bcc3a42d77d10 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.2 version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55} - version: 0.0.0-715d1659cb1128762a84a8c41d7bd6fb6071ddd7 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10} + version: 0.0.0-99cb49d8f4240fcd51f93c6f05f52c869dd50d9a hasBin: true '@angular/platform-browser@20.3.2': @@ -9250,7 +9250,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/8d333e8e2c48ff99a1a3ca633c1d6a456c082c55(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 48f61cc0b2623ce5f45b04b1e739194e8f38e35e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 05:05:12 +0000 Subject: [PATCH 140/228] build: update dependency node to v22.20.0 See associated pull request for more information. --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index e2228113dd09..442c7587a99a 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.19.0 +22.20.0 From 47b0b64dcf74703d125773fa639af032ab2f8760 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 19:34:52 +0000 Subject: [PATCH 141/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 4c8397ead41a..8ed46fd4e2c3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -26,13 +26,13 @@ single_version_override( ) bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") -bazel_dep(name = "bazel_skylib", version = "1.8.1") +bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "rules_angular") git_override( module_name = "rules_angular", - commit = "4010ef96de0c46db7764adc2f262258c9de3d718", + commit = "2c348bf59a38d044f4d389290d597d94c0699607", remote = "https://github.com/devversion/rules_angular.git", ) From e84eba8aea953092ab7ad47cb1a6563296759f39 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 19:34:44 +0000 Subject: [PATCH 142/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 9 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 814cf9a4974f..dd17d9e54e73 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + - uses: angular/dev-infra/github-actions/branch-manager@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12d20d99791a..d88be1ac30e3 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 014598037b27..04c1a7d25610 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + - uses: angular/dev-infra/github-actions/pull-request-labeling@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + - uses: angular/dev-infra/github-actions/post-approval-changes@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 78879a86d41b..3e7a2cb15260 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + - uses: angular/dev-infra/github-actions/feature-request@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 0234e35454e8..9bd3492cae24 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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 e65321f168d2..139e1f247ed8 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/linting/licenses@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - 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@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 8ed46fd4e2c3..378be7e7a583 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "99cb49d8f4240fcd51f93c6f05f52c869dd50d9a", + commit = "00cef30761644cb8c8e75ea448e958e4eeed3aa7", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index d19147c8db3d..cd105d9c90d9 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.2", "@angular/localize": "20.3.2", "@angular/material": "20.2.5", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#05831615b5579240d8407d44e30bcc3a42d77d10", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e", "@angular/platform-browser": "20.3.2", "@angular/platform-server": "20.3.2", "@angular/router": "20.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f9b59d3eab2..3628a481ac21 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.5 version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#05831615b5579240d8407d44e30bcc3a42d77d10 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.2 version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10} - version: 0.0.0-99cb49d8f4240fcd51f93c6f05f52c869dd50d9a + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e} + version: 0.0.0-00cef30761644cb8c8e75ea448e958e4eeed3aa7 hasBin: true '@angular/platform-browser@20.3.2': @@ -9250,7 +9250,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/05831615b5579240d8407d44e30bcc3a42d77d10(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From cb454a3ac1011b34a1b4adbdd458ccbc6905456a Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 28 Sep 2025 07:04:29 +0000 Subject: [PATCH 143/228] build: update github/codeql-action action to v3.30.5 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index dcb4fd2a02ad..fb639f1b62fb 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@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 + uses: github/codeql-action/init@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 + uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3a85b4f55faa..4b979ef1e3d4 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@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 + uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 with: sarif_file: results.sarif From aeb013a4681ce20186e8ca720a4724e1d32d20fa Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 29 Sep 2025 07:06:17 +0000 Subject: [PATCH 144/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 238 +++++++++++++++++++++++-------------------------- 1 file changed, 114 insertions(+), 124 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3628a481ac21..1ccf0d90e689 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -258,7 +258,7 @@ importers: version: 0.30.17 npm: specifier: ^11.0.0 - version: 11.6.0 + version: 11.6.1 prettier: specifier: ^3.0.0 version: 3.6.2 @@ -294,7 +294,7 @@ importers: version: 0.5.21 tar: specifier: ^7.0.0 - version: 7.4.3 + version: 7.5.1 ts-node: specifier: ^10.9.1 version: 10.9.2(@types/node@22.18.6)(typescript@5.9.2) @@ -2477,8 +2477,8 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.39.6': - resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} + '@mswjs/interceptors@0.39.7': + resolution: {integrity: sha512-sURvQbbKsq5f8INV54YJgJEdk8oxBanqkTiXXd33rKmofFCwZLhLRszPduMZ9TA9b8/1CHc/IJmOlBHJk2Q5AQ==} engines: {node: '>=18'} '@napi-rs/nice-android-arm-eabi@1.1.1': @@ -3174,8 +3174,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.52.0': - resolution: {integrity: sha512-ELDfd164EwuLyPLhMBMP/zUfLi5RXmCbRGQpkGqfSTNATi0WLgPo96+c1W9YGEefgR+OH1okNKV+clWhgVrwIA==} + '@rollup/wasm-node@4.52.3': + resolution: {integrity: sha512-Vltzfan6IBSm4dG3w8ArFVUMhBABbW/9uYMPnbYyv2Vk+Jry9qzlXKvxSZhDbvwtb0GJHDWwPOMj6d8G2cb9Tw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3575,8 +3575,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.44.0': - resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} + '@typescript-eslint/types@8.44.1': + resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -3912,8 +3912,8 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@7.1.0: - resolution: {integrity: sha512-YdhtCd19sKRKfAAUsrcC1wzm4JuzJoiX4pOJqIoW2qmKj5WzG/dL8uUJ0361zaXtHqK7gEhOwtAtz7t3Yq3X5g==} + ansi-escapes@7.1.1: + resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} engines: {node: '>=18'} ansi-html-community@0.0.8: @@ -4086,8 +4086,8 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - b4a@1.7.1: - resolution: {integrity: sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==} + b4a@1.7.3: + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} peerDependencies: react-native-b4a: '*' peerDependenciesMeta: @@ -4122,8 +4122,8 @@ packages: bare-events@2.7.0: resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} - bare-fs@4.4.4: - resolution: {integrity: sha512-Q8yxM1eLhJfuM7KXVP3zjhBvtMJCYRByoTT+wHXjpdMELv0xICFJX+1w4c7csa+WZEOsq4ItJ4RGwvzid6m/dw==} + bare-fs@4.4.5: + resolution: {integrity: sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4163,8 +4163,8 @@ packages: resolution: {integrity: sha512-yyFDnoo0M1qlZfWyxihEphjxleNIv1W603kwqMiBE9B6SPFgZbysvoqOpMZr/l0wmErkRbBTp4gOwljtGx/TdQ==} hasBin: true - baseline-browser-mapping@2.8.6: - resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + baseline-browser-mapping@2.8.8: + resolution: {integrity: sha512-be0PUaPsQX/gPWWgFsdD+GFzaoig5PXaUC1xLkQiYdDnANU8sMnHoQd8JhbJQuvTWrWLyeFN9Imb5Qtfvr4RrQ==} hasBin: true basic-ftp@5.0.5: @@ -4324,8 +4324,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001743: - resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} + caniuse-lite@1.0.30001745: + resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4388,8 +4388,8 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - chromium-bidi@8.0.0: - resolution: {integrity: sha512-d1VmE0FD7lxZQHzcDUCKZSNRtRwISXDsdg4HjdTR5+Ll5nQ/vzU12JeNmupD6VWffrPSlrnGhEWlLESKH3VO+g==} + chromium-bidi@9.1.0: + resolution: {integrity: sha512-rlUzQ4WzIAWdIbY/viPShhZU2n21CxDUgazXVbw4Hu1MwaeUSEksSeM6DqPgpRjCLXRk702AVRxJxoOz0dw4OA==} peerDependencies: devtools-protocol: '*' @@ -4835,8 +4835,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.1.0: - resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==} + detect-libc@2.1.1: + resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} engines: {node: '>=8'} detect-node@2.1.0: @@ -4927,8 +4927,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.222: - resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} + electron-to-chromium@1.5.227: + resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -5200,6 +5200,9 @@ packages: events-intercept@2.0.0: resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -5458,8 +5461,8 @@ packages: resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} engines: {node: '>=14'} - gaxios@7.1.1: - resolution: {integrity: sha512-Odju3uBUJyVCkW64nLD4wKLhbh93bh6vIg/ZIXkWiLPBrdgtc65+tls/qml+un3pr6JqYVFDZbbmLDQT68rTOQ==} + gaxios@7.1.2: + resolution: {integrity: sha512-/Szrn8nr+2TsQT1Gp8iIe/BEytJmbyfrbFh419DfGQSkEgNEhbPi7JRJuughjkTzPWgU9gBQf5AVu3DbHt0OXA==} engines: {node: '>=18'} gcp-metadata@6.1.1: @@ -6266,11 +6269,6 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -6558,8 +6556,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.1: - resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} + lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -6606,9 +6604,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.43.0: - resolution: {integrity: sha512-XCdhMy33sgxCwJ4JgjSasLGgOjFm9/i+IEhO03gPHroJeTBhM7ZQ1+v3j7di9nNKtcLGjVvKjHVOkTbVop/R/Q==} - engines: {node: '>= 4.0.0'} + memfs@4.47.0: + resolution: {integrity: sha512-Xey8IZA57tfotV/TN4d6BmccQuhFP+CqRiI7TTNdipZdZBzF2WnzUcH//Cudw6X4zJiUbo/LTuU/HPA/iC/pNg==} meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -6746,8 +6743,8 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} mitt@1.2.0: @@ -6768,11 +6765,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -6946,8 +6938,8 @@ packages: resolution: {integrity: sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==} engines: {node: ^20.17.0 || >=22.9.0} - npm-packlist@10.0.1: - resolution: {integrity: sha512-vaC03b2PqJA6QqmwHi1jNU8fAPXEnnyv4j/W4PVfgm24C4/zZGSVut3z0YUeN0WIFCo1oGOL02+6LbvFK7JL4Q==} + npm-packlist@10.0.2: + resolution: {integrity: sha512-DrIWNiWT0FTdDRjGOYfEEZUNe1IzaSZ+up7qBTKnrQDySpdmuOQvytrqQlpK5QrCA4IThMvL4wTumqaa1ZvVIQ==} engines: {node: ^20.17.0 || >=22.9.0} npm-pick-manifest@10.0.0: @@ -6962,8 +6954,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm@11.6.0: - resolution: {integrity: sha512-d/P7DbvYgYNde9Ehfeq99+13/E7E82PfZPw8uYZASr9sQ3ZhBBCA9cXSJRA1COfJ6jDLJ0K36UJnXQWhCvLXuQ==} + npm@11.6.1: + resolution: {integrity: sha512-7iDSHDoup6uMQJ37yWrhfqcbMhF0UEfGRap6Nv+aKQcrIJXlCi2cKbj75WBmiHlcwsQCy/U0zEwDZdAx6H/Vaw==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: @@ -7510,8 +7502,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.22.0: - resolution: {integrity: sha512-oUeWlIg0pMz8YM5pu0uqakM+cCyYyXkHBxx9di9OUELu9X9+AYrNGGRLK9tNME3WfN3JGGqQIH3b4/E9LGek/w==} + puppeteer-core@24.22.3: + resolution: {integrity: sha512-M/Jhg4PWRANSbL/C9im//Yb55wsWBS5wdp+h59iwM+EPicVQQCNs56iC5aEAO7avfDPRfxs4MM16wHjOYHNJEw==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -7615,15 +7607,15 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.3.1: - resolution: {integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true request@2.88.2: @@ -8126,8 +8118,8 @@ packages: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} - streamx@2.22.1: - resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -8186,8 +8178,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} stubs@3.0.0: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} @@ -8240,8 +8232,8 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} engines: {node: '>=18'} teeny-request@10.1.0: @@ -9416,7 +9408,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.3.1 + regexpu-core: 6.4.0 semver: 6.3.1 '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.3)': @@ -10949,7 +10941,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.39.6': + '@mswjs/interceptors@0.39.7': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -11533,7 +11525,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@rollup/wasm-node@4.52.0': + '@rollup/wasm-node@4.52.3': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11578,7 +11570,7 @@ snapshots: '@stylistic/eslint-plugin@5.4.0(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/types': 8.44.1 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -12034,7 +12026,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.44.0': {} + '@typescript-eslint/types@8.44.1': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12250,7 +12242,7 @@ snapshots: dependencies: '@vitest/utils': 3.2.4 pathe: 2.0.3 - strip-literal: 3.0.0 + strip-literal: 3.1.0 '@vitest/snapshot@3.2.4': dependencies: @@ -12343,7 +12335,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.22.0(bufferutil@4.0.9) + puppeteer-core: 24.22.3(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12626,7 +12618,7 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@7.1.0: + ansi-escapes@7.1.1: dependencies: environment: 1.1.0 @@ -12764,7 +12756,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.26.2 - caniuse-lite: 1.0.30001743 + caniuse-lite: 1.0.30001745 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12779,7 +12771,7 @@ snapshots: aws4@1.13.2: {} - b4a@1.7.1: {} + b4a@1.7.3: {} babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)): dependencies: @@ -12813,10 +12805,9 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.7.0: - optional: true + bare-events@2.7.0: {} - bare-fs@4.4.4: + bare-fs@4.4.5: dependencies: bare-events: 2.7.0 bare-path: 3.0.0 @@ -12837,7 +12828,7 @@ snapshots: bare-stream@2.7.0(bare-events@2.7.0): dependencies: - streamx: 2.22.1 + streamx: 2.23.0 optionalDependencies: bare-events: 2.7.0 transitivePeerDependencies: @@ -12855,7 +12846,7 @@ snapshots: baseline-browser-mapping@2.6.3: {} - baseline-browser-mapping@2.8.6: {} + baseline-browser-mapping@2.8.8: {} basic-ftp@5.0.5: {} @@ -13013,9 +13004,9 @@ snapshots: browserslist@4.26.2: dependencies: - baseline-browser-mapping: 2.8.6 - caniuse-lite: 1.0.30001743 - electron-to-chromium: 1.5.222 + baseline-browser-mapping: 2.8.8 + caniuse-lite: 1.0.30001745 + electron-to-chromium: 1.5.227 node-releases: 2.0.21 update-browserslist-db: 1.1.3(browserslist@4.26.2) @@ -13067,7 +13058,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 7.0.3 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.1 unique-filename: 4.0.0 cache-content-type@1.0.1: @@ -13098,7 +13089,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001743: {} + caniuse-lite@1.0.30001745: {} caseless@0.12.0: {} @@ -13174,7 +13165,7 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@8.0.0(devtools-protocol@0.0.1495869): + chromium-bidi@9.1.0(devtools-protocol@0.0.1495869): dependencies: devtools-protocol: 0.0.1495869 mitt: 3.0.1 @@ -13590,7 +13581,7 @@ snapshots: detect-libc@1.0.3: optional: true - detect-libc@2.1.0: + detect-libc@2.1.1: optional: true detect-node@2.1.0: {} @@ -13689,7 +13680,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.222: {} + electron-to-chromium@1.5.227: {} emoji-regex@10.5.0: {} @@ -14062,6 +14053,10 @@ snapshots: events-intercept@2.0.0: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.7.0 + events@3.3.0: {} eventsource-parser@3.0.6: {} @@ -14166,7 +14161,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14440,7 +14435,7 @@ snapshots: - encoding - supports-color - gaxios@7.1.1(supports-color@10.2.2): + gaxios@7.1.2(supports-color@10.2.2): dependencies: extend: 3.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) @@ -14459,7 +14454,7 @@ snapshots: gcp-metadata@7.0.1(supports-color@10.2.2): dependencies: - gaxios: 7.1.1(supports-color@10.2.2) + gaxios: 7.1.2(supports-color@10.2.2) google-logging-utils: 1.1.1 json-bigint: 1.0.0 transitivePeerDependencies: @@ -14599,7 +14594,7 @@ snapshots: dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.1(supports-color@10.2.2) + gaxios: 7.1.2(supports-color@10.2.2) gcp-metadata: 7.0.1(supports-color@10.2.2) google-logging-utils: 1.1.1 gtoken: 8.0.0(supports-color@10.2.2) @@ -14667,7 +14662,7 @@ snapshots: gtoken@8.0.0(supports-color@10.2.2): dependencies: - gaxios: 7.1.1(supports-color@10.2.2) + gaxios: 7.1.2(supports-color@10.2.2) jws: 4.0.0 transitivePeerDependencies: - supports-color @@ -14731,7 +14726,7 @@ snapshots: hosted-git-info@9.0.0: dependencies: - lru-cache: 11.2.1 + lru-cache: 11.2.2 hpack.js@2.1.6: dependencies: @@ -15320,8 +15315,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-bigint@1.0.0: @@ -15683,7 +15676,7 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.1.0 + ansi-escapes: 7.1.1 cli-cursor: 5.0.0 slice-ansi: 7.1.2 strip-ansi: 7.1.2 @@ -15713,7 +15706,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.1: {} + lru-cache@11.2.2: {} lru-cache@5.1.1: dependencies: @@ -15763,7 +15756,7 @@ snapshots: media-typer@1.1.0: {} - memfs@4.43.0: + memfs@4.47.0: dependencies: '@jsonjoy.com/json-pack': 1.14.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) @@ -15853,7 +15846,7 @@ snapshots: dependencies: minipass: 7.1.2 minipass-sized: 1.0.3 - minizlib: 3.0.2 + minizlib: 3.1.0 optionalDependencies: encoding: 0.1.13 @@ -15882,7 +15875,7 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - minizlib@3.0.2: + minizlib@3.1.0: dependencies: minipass: 7.1.2 @@ -15898,8 +15891,6 @@ snapshots: mkdirp@1.0.4: {} - mkdirp@3.0.1: {} - mrmime@2.0.1: {} ms@2.0.0: {} @@ -15965,7 +15956,7 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.46.2) - '@rollup/wasm-node': 4.52.0 + '@rollup/wasm-node': 4.52.3 ajv: 8.17.1 ansi-colors: 4.1.3 browserslist: 4.26.2 @@ -15991,7 +15982,7 @@ snapshots: nock@14.0.10: dependencies: - '@mswjs/interceptors': 0.39.6 + '@mswjs/interceptors': 0.39.7 json-stringify-safe: 5.0.1 propagate: 2.0.1 @@ -16027,7 +16018,7 @@ snapshots: node-gyp-build-optional-packages@5.2.2: dependencies: - detect-libc: 2.1.0 + detect-libc: 2.1.1 optional: true node-gyp-build@4.8.4: {} @@ -16041,7 +16032,7 @@ snapshots: nopt: 8.1.0 proc-log: 5.0.0 semver: 7.7.2 - tar: 7.4.3 + tar: 7.5.1 tinyglobby: 0.2.14 which: 5.0.0 transitivePeerDependencies: @@ -16081,9 +16072,10 @@ snapshots: semver: 7.7.2 validate-npm-package-name: 6.0.2 - npm-packlist@10.0.1: + npm-packlist@10.0.2: dependencies: ignore-walk: 8.0.0 + proc-log: 5.0.0 npm-pick-manifest@10.0.0: dependencies: @@ -16099,7 +16091,7 @@ snapshots: make-fetch-happen: 14.0.3 minipass: 7.1.2 minipass-fetch: 4.0.1 - minizlib: 3.0.2 + minizlib: 3.1.0 npm-package-arg: 12.0.2 proc-log: 5.0.0 transitivePeerDependencies: @@ -16109,7 +16101,7 @@ snapshots: dependencies: path-key: 3.1.1 - npm@11.6.0: {} + npm@11.6.1: {} nth-check@2.1.1: dependencies: @@ -16307,7 +16299,7 @@ snapshots: fs-minipass: 3.0.3 minipass: 7.1.2 npm-package-arg: 12.0.2 - npm-packlist: 10.0.1 + npm-packlist: 10.0.2 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 proc-log: 5.0.0 @@ -16374,7 +16366,7 @@ snapshots: path-scurry@2.0.0: dependencies: - lru-cache: 11.2.1 + lru-cache: 11.2.2 minipass: 7.1.2 path-to-regexp@0.1.12: {} @@ -16645,10 +16637,10 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.22.0(bufferutil@4.0.9): + puppeteer-core@24.22.3(bufferutil@4.0.9): dependencies: '@puppeteer/browsers': 2.10.10 - chromium-bidi: 8.0.0(devtools-protocol@0.0.1495869) + chromium-bidi: 9.1.0(devtools-protocol@0.0.1495869) debug: 4.4.3(supports-color@10.2.2) devtools-protocol: 0.0.1495869 typed-query-selector: 2.12.0 @@ -16800,20 +16792,20 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.3.1: + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.12.0 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.12.0: + regjsparser@0.13.0: dependencies: - jsesc: 3.0.2 + jsesc: 3.1.0 request@2.88.2: dependencies: @@ -17487,12 +17479,11 @@ snapshots: transitivePeerDependencies: - supports-color - streamx@2.22.1: + streamx@2.23.0: dependencies: + events-universal: 1.0.1 fast-fifo: 1.3.2 text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.7.0 transitivePeerDependencies: - react-native-b4a @@ -17565,7 +17556,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.0.0: + strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -17606,7 +17597,7 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.4.4 + bare-fs: 4.4.5 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -17622,9 +17613,9 @@ snapshots: tar-stream@3.1.7: dependencies: - b4a: 1.7.1 + b4a: 1.7.3 fast-fifo: 1.3.2 - streamx: 2.22.1 + streamx: 2.23.0 transitivePeerDependencies: - react-native-b4a @@ -17637,13 +17628,12 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.4.3: + tar@7.5.1: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 + minizlib: 3.1.0 yallist: 5.0.0 teeny-request@10.1.0(supports-color@10.2.2): @@ -17675,7 +17665,7 @@ snapshots: text-decoder@1.2.3: dependencies: - b4a: 1.7.1 + b4a: 1.7.3 transitivePeerDependencies: - react-native-b4a @@ -18210,7 +18200,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.43.0 + memfs: 4.47.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 From 0b5481eaec391d64fdfe8f6aaca1a2d89329f211 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 29 Sep 2025 13:41:53 +0000 Subject: [PATCH 145/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++++++------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +++++------ MODULE.bazel | 2 +- MODULE.bazel.lock | 65 +--------------- package.json | 2 +- pnpm-lock.yaml | 78 +++++++++---------- 10 files changed, 98 insertions(+), 159 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index dd17d9e54e73..ef4948019bf7 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/branch-manager@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d88be1ac30e3..157b898c3d7e 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 04c1a7d25610..627102fcebaa 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/pull-request-labeling@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/post-approval-changes@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 3e7a2cb15260..15697e3c56f3 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/feature-request@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 9bd3492cae24..e3bad8d581ed 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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 139e1f247ed8..0dcc37255182 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/linting/licenses@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 378be7e7a583..64d6bdc70afa 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "00cef30761644cb8c8e75ea448e958e4eeed3aa7", + commit = "b7672ff60456719e6d9b0cc052abc73a7adc8df2", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 1654933521e7..f53f141226fb 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -173,8 +173,8 @@ "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", - "https://bcr.bazel.build/modules/tar.bzl/0.5.5/MODULE.bazel": "4bfab9bbc7a1966c2c5f7371f5848f5e2d27c465951b4435adc9aaf00ed681da", - "https://bcr.bazel.build/modules/tar.bzl/0.5.5/source.json": "67c322bd9f9a6714b9d55d4df36ddc222976a7fbb2070410ef036f68cdf2eeb7", + "https://bcr.bazel.build/modules/tar.bzl/0.5.6/MODULE.bazel": "c5b8bfa6bc7b640883d41bfec4a200fb45c16a2a7b2fb081323f499197cfcc09", + "https://bcr.bazel.build/modules/tar.bzl/0.5.6/source.json": "848b3a4eaf2bb4a09ab78533c348e19a6723c7d5f820eb1dceb0eeb5e5914ac1", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", @@ -2342,67 +2342,6 @@ "recordedRepoMappingEntries": [] } }, - "@@tar.bzl~//tar:extensions.bzl%toolchains": { - "general": { - "bzlTransitiveDigest": "x8T4avQwaccwFRDkBObSMray93ZBHwpcjsZTPQOyII0=", - "usagesDigest": "aQJiuhjXhigIjDvDZxsHPfosrrHvNBHV55yj8QdZQgs=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "bsd_tar_toolchains": { - "bzlFile": "@@tar.bzl~//tar/toolchain:toolchain.bzl", - "ruleClassName": "tar_toolchains_repo", - "attributes": { - "user_repository_name": "bsd_tar_toolchains" - } - }, - "bsd_tar_toolchains_darwin_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "darwin_amd64" - } - }, - "bsd_tar_toolchains_darwin_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "darwin_arm64" - } - }, - "bsd_tar_toolchains_linux_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "linux_amd64" - } - }, - "bsd_tar_toolchains_linux_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "linux_arm64" - } - }, - "bsd_tar_toolchains_windows_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "windows_amd64" - } - }, - "bsd_tar_toolchains_windows_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "windows_arm64" - } - } - }, - "recordedRepoMappingEntries": [] - } - }, "@@yq.bzl~//yq:extensions.bzl%yq": { "general": { "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", diff --git a/package.json b/package.json index cd105d9c90d9..ee76cac04f14 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.2", "@angular/localize": "20.3.2", "@angular/material": "20.2.5", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb", "@angular/platform-browser": "20.3.2", "@angular/platform-server": "20.3.2", "@angular/router": "20.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ccf0d90e689..76e6804d6ec6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.5 version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.2 version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -366,7 +366,7 @@ importers: version: 5.1.14(@types/node@24.5.2) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e} - version: 0.0.0-00cef30761644cb8c8e75ea448e958e4eeed3aa7 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb} + version: 0.0.0-b7672ff60456719e6d9b0cc052abc73a7adc8df2 hasBin: true '@angular/platform-browser@20.3.2': @@ -2122,8 +2122,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.20.0': - resolution: {integrity: sha512-QdShxO9LX35jFogy3iKprQNqgKKveux4H2QjOnyIvyHRuGi6PHiz3fjNf8Y0VPY8o5V2fHqR2XqiSVoz7yZs0w==} + '@google/genai@1.21.0': + resolution: {integrity: sha512-k47DECR8BF9z7IJxQd3reKuH2eUnOH5NlJWSe+CKM6nbXx+wH3hmtWQxUQR9M8gzWW1EvFuRVgjQssEIreNZsw==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -6208,8 +6208,8 @@ 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.11.0: + resolution: {integrity: sha512-MPJ8L5yyNul0F2SuEsLASwESXQjJvBXnKu31JWFyRZSvuv2B79K4GDWN3pSqvLheUNh7Fyb6dXwd4rsz95O2Kg==} jasmine-core@5.9.0: resolution: {integrity: sha512-OMUvF1iI6+gSRYOhMrH4QYothVLN9C3EJ6wm4g7zLJlnaTl8zbaPOr0bTw70l7QxkoM7sVFOWo83u9B2Fe2Zng==} @@ -6224,8 +6224,8 @@ packages: resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} hasBin: true - jasmine@5.10.0: - resolution: {integrity: sha512-v4FojO8cXQdx15mJXovGhjJOvyIcVf7AC+H0ZahnfLk52vUbwuLxjVgbikc95yLmgwKQsFT47/FGQ3dOrWVxtQ==} + jasmine@5.11.0: + resolution: {integrity: sha512-MhIYY2pLfRA5hhIvY72ZLilwKeZEBuTyIUv9JDB+b+pEYehsJDW2obKF2dmMtWaFG6pDiFiAUNphpZ7SW7fFMA==} hasBin: true jasmine@5.9.0: @@ -8396,8 +8396,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.20.5: - resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} + tsx@4.20.6: + resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} engines: {node: '>=18.0.0'} hasBin: true @@ -9242,11 +9242,11 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.20.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@google/genai': 1.21.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.8.6(@types/node@24.5.2) '@inquirer/type': 3.0.8(@types/node@24.5.2) '@octokit/auth-app': 8.1.0 @@ -9283,8 +9283,8 @@ snapshots: firebase: 12.3.0 folder-hash: 4.1.1(supports-color@10.2.2) git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) - jasmine: 5.10.0 - jasmine-core: 5.10.0 + jasmine: 5.11.0 + jasmine-core: 5.11.0 jasmine-reporters: 2.5.2 jsonc-parser: 3.3.1 minimatch: 10.0.3 @@ -9292,7 +9292,7 @@ snapshots: nock: 14.0.10 semver: 7.7.2 supports-color: 10.2.2 - tsx: 4.20.5 + tsx: 4.20.6 typed-graphqlify: 3.1.6 typescript: 5.9.2 utf-8-validate: 6.0.5 @@ -10597,7 +10597,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.20.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.21.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -12214,9 +12214,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12226,13 +12226,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -15237,7 +15237,7 @@ snapshots: jasmine-core@4.6.1: {} - jasmine-core@5.10.0: {} + jasmine-core@5.11.0: {} jasmine-core@5.9.0: {} @@ -15256,10 +15256,10 @@ snapshots: glob: 7.2.3 jasmine-core: 2.8.0 - jasmine@5.10.0: + jasmine@5.11.0: dependencies: glob: 10.4.5 - jasmine-core: 5.10.0 + jasmine-core: 5.11.0 jasmine@5.9.0: dependencies: @@ -17786,7 +17786,7 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.20.5: + tsx@4.20.6: dependencies: esbuild: 0.25.9 get-tsconfig: 4.10.1 @@ -18069,13 +18069,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18090,7 +18090,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18105,14 +18105,14 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.43.1 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18130,8 +18130,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.5.2 From 151636e3fefec51bc07a1c4c2308806963db54cd Mon Sep 17 00:00:00 2001 From: gioboa Date: Sat, 27 Sep 2025 15:16:29 +0200 Subject: [PATCH 146/228] docs: fix up createNodeRequestHandler examples (cherry picked from commit 3db1a170551d3919cdb5fbc9480f7adcd2148ed7) --- packages/angular/ssr/node/src/handler.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/angular/ssr/node/src/handler.ts b/packages/angular/ssr/node/src/handler.ts index 89452b3099b1..d95199e00d07 100644 --- a/packages/angular/ssr/node/src/handler.ts +++ b/packages/angular/ssr/node/src/handler.ts @@ -52,7 +52,7 @@ export type NodeRequestHandlerFunction = ( * } catch (error) { * next(error); * } - * })); + * }); * ``` * * @example @@ -62,8 +62,7 @@ export type NodeRequestHandlerFunction = ( * export default createNodeRequestHandler(async (req, res) => { * await app.ready(); * app.server.emit('request', req, res); - * res.send('Hello from Fastify with Node Next Handler!'); - * })); + * }); * ``` */ export function createNodeRequestHandler(handler: T): T { From c94bf7ff0845fe325c39737057ff1ed4ea553011 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Mon, 29 Sep 2025 17:04:54 +0900 Subject: [PATCH 147/228] fix(@schematics/angular): Out of the box support for PM2 Because PM2 is the most popular node process manager, it makes sense to support it out of the box. Fixes #31081 (cherry picked from commit 8ac515699cfd5a4e7eda9bcc054dfd7c68faba39) --- .../angular/ssr/files/application-builder/server.ts.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/schematics/angular/ssr/files/application-builder/server.ts.template b/packages/schematics/angular/ssr/files/application-builder/server.ts.template index 6fb8b2c77e5a..e7be03e005d9 100644 --- a/packages/schematics/angular/ssr/files/application-builder/server.ts.template +++ b/packages/schematics/angular/ssr/files/application-builder/server.ts.template @@ -48,10 +48,10 @@ app.use((req, res, next) => { }); /** - * Start the server if this module is the main entry point. + * Start the server if this module is the main entry point, or it is ran via PM2. * The server listens on the port defined by the `PORT` environment variable, or defaults to 4000. */ -if (isMainModule(import.meta.url)) { +if (isMainModule(import.meta.url) || process.env.pm_id) { const port = process.env['PORT'] || 4000; app.listen(port, (error) => { if (error) { From 465436c9fa21173befe5e39b61afb7f29435c2aa Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 29 Sep 2025 15:52:24 +0000 Subject: [PATCH 148/228] fix(@schematics/angular): use bracket notation for `process.env['pm_id']` The property `pm_id` on `process.env` comes from an index signature, so it must be accessed with bracket notation (`['pm_id']`) to avoid TypeScript errors. This change corrects the access to `process.env['pm_id']` in the SSR server template. (cherry picked from commit 57075a31ad8f95a82304fe8533b3bca828d8da42) --- .../angular/ssr/files/application-builder/server.ts.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schematics/angular/ssr/files/application-builder/server.ts.template b/packages/schematics/angular/ssr/files/application-builder/server.ts.template index e7be03e005d9..556d7fbd224d 100644 --- a/packages/schematics/angular/ssr/files/application-builder/server.ts.template +++ b/packages/schematics/angular/ssr/files/application-builder/server.ts.template @@ -51,7 +51,7 @@ app.use((req, res, next) => { * Start the server if this module is the main entry point, or it is ran via PM2. * The server listens on the port defined by the `PORT` environment variable, or defaults to 4000. */ -if (isMainModule(import.meta.url) || process.env.pm_id) { +if (isMainModule(import.meta.url) || process.env['pm_id']) { const port = process.env['PORT'] || 4000; app.listen(port, (error) => { if (error) { From ee2e4ee1e1fca4bb60ce3af29ce4c711f4c66cad Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 30 Sep 2025 05:05:23 +0000 Subject: [PATCH 149/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 64d6bdc70afa..fe0c73f54f67 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -4,8 +4,8 @@ module( name = "angular_cli", ) -bazel_dep(name = "yq.bzl", version = "0.2.0") -bazel_dep(name = "rules_nodejs", version = "6.5.0") +bazel_dep(name = "yq.bzl", version = "0.3.1") +bazel_dep(name = "rules_nodejs", version = "6.5.2") bazel_dep(name = "aspect_rules_js", version = "2.6.0") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index f53f141226fb..6341292aeaf4 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -45,6 +45,8 @@ "https://bcr.bazel.build/modules/bazel_features/1.34.0/source.json": "dfa5c4b01110313153b484a735764d247fee5624bbab63d25289e43b151a657a", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0-beta.1/MODULE.bazel": "407729e232f611c3270005b016b437005daa7b1505826798ea584169a476e878", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0-beta.1/source.json": "72bfbe19a3936675719157798de64631e9ac54c2b41f13b544b821d094f4840a", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", @@ -145,7 +147,8 @@ "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d", "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/MODULE.bazel": "546d0cf79f36f9f6e080816045f97234b071c205f4542e3351bd4424282a8810", - "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/source.json": "ac075bc5babebc25a0adc88ee885f2c8d8520d141f6e139ba9dfa0eedb5be908", + "https://bcr.bazel.build/modules/rules_nodejs/6.5.2/MODULE.bazel": "7f9ea68a0ce6d82905ce9f74e76ab8a8b4531ed4c747018c9d76424ad0b3370d", + "https://bcr.bazel.build/modules/rules_nodejs/6.5.2/source.json": "6a6ca0940914d55c550d1417cad13a56c9900e23f651a762d8ccc5a64adcf661", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", "https://bcr.bazel.build/modules/rules_pkg/0.8.1/MODULE.bazel": "7e9e7b5b26bd7ff012dfe63930db2f0176ddcd25e44a858fc72d63e995b6aab9", "https://bcr.bazel.build/modules/rules_pkg/0.8.1/source.json": "15dd7e13dc303f7fcde2b55300bcb8de5c0dd08a7a7269749cbbaa0fb1dfbe16", @@ -178,7 +181,8 @@ "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", - "https://bcr.bazel.build/modules/yq.bzl/0.2.0/source.json": "ff33c6f75da6848caade494240b6824cf00e7e6b8892100f4253984e1dfae2af", + "https://bcr.bazel.build/modules/yq.bzl/0.3.1/MODULE.bazel": "9bcb7151b3cd4681b89d350530eaf7b45e32a44dda94843b8932b0cb1cd4594a", + "https://bcr.bazel.build/modules/yq.bzl/0.3.1/source.json": "f0b0f204a2a6b0e34b4c9541efe8c04f2ef1af65948daa784eccea738b21dbd2", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", @@ -1122,8 +1126,8 @@ }, "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { - "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=", - "usagesDigest": "379dqhYYyCx8bF/MzKdH1s8HbACwSZ3jgU3ppJfcJEc=", + "bzlTransitiveDigest": "FmfMiNXAxRoLWw3NloQbssosE1egrSvzirbQnso7j7E=", + "usagesDigest": "dQPwfMGn82Q5590JUruHiQBsYUxIunUFb+wBb/czUI4=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -2345,7 +2349,7 @@ "@@yq.bzl~//yq:extensions.bzl%yq": { "general": { "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", - "usagesDigest": "aPwG8k9scmFMv3dtS84dXq/OIbovpOzBLa/ZDS1QvlQ=", + "usagesDigest": "X+3wxc/+KjF0tyJJ5qca2U/BgoeAEmAD0kuz8iBcX+0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 6a3c4f81814c4f39ba73f5a8c8efaa3eedd9c230 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Mon, 29 Sep 2025 19:53:42 -0400 Subject: [PATCH 150/228] test(@angular/build): reduce usage of `@angular-devkit/core` tags helpers in unit-tests (cherry picked from commit 472344db2c13cf6fd8dac76f1cee099762976421) --- .../serve-live-reload-proxies_spec.ts | 104 +++++++++--------- .../tests/behavior/code-coverage_spec.ts | 11 +- .../index-file/augment-index-html_spec.ts | 3 +- 3 files changed, 57 insertions(+), 61 deletions(-) diff --git a/packages/angular/build/src/builders/dev-server/tests/behavior/serve-live-reload-proxies_spec.ts b/packages/angular/build/src/builders/dev-server/tests/behavior/serve-live-reload-proxies_spec.ts index 083773529058..65f34bddf94d 100644 --- a/packages/angular/build/src/builders/dev-server/tests/behavior/serve-live-reload-proxies_spec.ts +++ b/packages/angular/build/src/builders/dev-server/tests/behavior/serve-live-reload-proxies_spec.ts @@ -6,8 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ -/* eslint-disable import/no-extraneous-dependencies */ -import { tags } from '@angular-devkit/core'; import { createServer } from 'node:http'; import { createProxyServer } from 'http-proxy'; import { AddressInfo } from 'node:net'; @@ -43,58 +41,58 @@ async function createProxy(target: string, secure: boolean, ws = true): Promise< target, secure, ssl: secure && { - key: tags.stripIndents` - -----BEGIN RSA PRIVATE KEY----- - MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDEBRUsUz4rdcMt - CQGLvG3SzUinsmgdgOyTNQNA0eOMyRSrmS8L+F/kSLUnqqu4mzdeqDzo2Xj553jK - dRqMCRFGJuGnQ/VIbW2A+ywgrqILuDyF5i4PL1aQW4yJ7TnXfONKfpswQArlN6DF - gBYJtoJlf8XD1sOeJpsv/O46/ix/wngQ+GwQQ2cfqxQT0fE9SBCY23VNt3SPUJ3k - 9etJMvJ9U9GHSb1CFdNQe7Gyx7xdKf1TazB27ElNZEg2aF99if47uRskYjvvFivy - 7nxGx/ccIwjwNMpk29AsKG++0sn1yTK7tD5Px6aCSVK0BKbdXZS2euJor8hASGBJ - 3GpVGJvdAgMBAAECggEAapYo8TVCdPdP7ckb4hPP0/R0MVu9aW2VNmZ5ImH+zar5 - ZmWhQ20HF2bBupP/VB5yeTIaDLNUKO9Iqy4KBWNY1UCHKyC023FFPgFV+V98FctU - faqwGOmwtEZToRwxe48ZOISndhEc247oCPyg/x8SwIY9z0OUkwaDFBEAqWtUXxM3 - /SPpCT5ilLgxnRgVB8Fj5Z0q7ThnxNVOmVC1OSIakEj46PzmMXn1pCKLOCUmAAOQ - BnrOZuty2b8b2M/GHsktLZwojQQJmArnIBymTXQTVhaGgKSyOv1qvHLp9L1OJf0/ - Xm+/TqT6ztzhzlftcObdfQZZ5JuoEwlvyrsGFlA3MQKBgQDiQC3KYMG8ViJkWrv6 - XNAFEoAjVEKrtirGWJ66YfQ9KSJ7Zttrd1Y1V1OLtq3z4YMH39wdQ8rOD+yR8mWV - 6Tnsxma6yJXAH8uan8iVbxjIZKF1hnvNCxUoxYmWOmTLcEQMzmxvTzAiR+s6R6Uj - 9LgGqppt30nM4wnOhOJU6UxqbwKBgQDdy03KidbPZuycJSy1C9AIt0jlrxDsYm+U - fZrB6mHEZcgoZS5GbLKinQCdGcgERa05BXvJmNbfZtT5a37YEnbjsTImIhDiBP5P - nW36/9a3Vg1svd1KP2206/Bh3gfZbgTsQg4YogXgjf0Uzuvw18btgTtLVpVyeuqz - TU3eeF30cwKBgQCN6lvOmapsDEs+T3uhqx4AUH53qp63PmjOSUAnANJGmsq6ROZV - HmHAy6nn9Qpf85BRHCXhZWiMoIhvc3As/EINNtWxS6hC/q6jqp4SvcD50cVFBroY - /16iWGXZCX+37A+DSOfTWgSDPEFcKRx41UOpStHbITgVgEPieo/NWxlHmQKBgQDX - JOLs2RB6V0ilnpnjdPXzvncD9fHgmwvJap24BPeZX3HtXViqD76oZsu1mNCg9EW3 - zk3pnEyyoDlvSIreZerVq4kN3HWsCVP3Pqr0kz9g0CRtmy8RWr28hjHDfXD3xPUZ - iGnMEz7IOHOKv722/liFAprV1cNaLUmFbDNg3jmlaQKBgQDG5WwngPhOHmjTnSml - amfEz9a4yEhQqpqgVNW5wwoXOf6DbjL2m/maJh01giThj7inMcbpkZlIclxD0Eu6 - Lof+ctCeqSAJvaVPmd+nv8Yp26zsF1yM8ax9xXjrIvv9fSbycNveGTDCsNNTiYoW - QyvMqmN1kGy20SZbQDD/fLfqBQ== - -----END RSA PRIVATE KEY----- + key: ` +-----BEGIN RSA PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDEBRUsUz4rdcMt +CQGLvG3SzUinsmgdgOyTNQNA0eOMyRSrmS8L+F/kSLUnqqu4mzdeqDzo2Xj553jK +dRqMCRFGJuGnQ/VIbW2A+ywgrqILuDyF5i4PL1aQW4yJ7TnXfONKfpswQArlN6DF +gBYJtoJlf8XD1sOeJpsv/O46/ix/wngQ+GwQQ2cfqxQT0fE9SBCY23VNt3SPUJ3k +9etJMvJ9U9GHSb1CFdNQe7Gyx7xdKf1TazB27ElNZEg2aF99if47uRskYjvvFivy +7nxGx/ccIwjwNMpk29AsKG++0sn1yTK7tD5Px6aCSVK0BKbdXZS2euJor8hASGBJ +3GpVGJvdAgMBAAECggEAapYo8TVCdPdP7ckb4hPP0/R0MVu9aW2VNmZ5ImH+zar5 +ZmWhQ20HF2bBupP/VB5yeTIaDLNUKO9Iqy4KBWNY1UCHKyC023FFPgFV+V98FctU +faqwGOmwtEZToRwxe48ZOISndhEc247oCPyg/x8SwIY9z0OUkwaDFBEAqWtUXxM3 +/SPpCT5ilLgxnRgVB8Fj5Z0q7ThnxNVOmVC1OSIakEj46PzmMXn1pCKLOCUmAAOQ +BnrOZuty2b8b2M/GHsktLZwojQQJmArnIBymTXQTVhaGgKSyOv1qvHLp9L1OJf0/ +Xm+/TqT6ztzhzlftcObdfQZZ5JuoEwlvyrsGFlA3MQKBgQDiQC3KYMG8ViJkWrv6 +XNAFEoAjVEKrtirGWJ66YfQ9KSJ7Zttrd1Y1V1OLtq3z4YMH39wdQ8rOD+yR8mWV +6Tnsxma6yJXAH8uan8iVbxjIZKF1hnvNCxUoxYmWOmTLcEQMzmxvTzAiR+s6R6Uj +9LgGqppt30nM4wnOhOJU6UxqbwKBgQDdy03KidbPZuycJSy1C9AIt0jlrxDsYm+U +fZrB6mHEZcgoZS5GbLKinQCdGcgERa05BXvJmNbfZtT5a37YEnbjsTImIhDiBP5P +nW36/9a3Vg1svd1KP2206/Bh3gfZbgTsQg4YogXgjf0Uzuvw18btgTtLVpVyeuqz +TU3eeF30cwKBgQCN6lvOmapsDEs+T3uhqx4AUH53qp63PmjOSUAnANJGmsq6ROZV +HmHAy6nn9Qpf85BRHCXhZWiMoIhvc3As/EINNtWxS6hC/q6jqp4SvcD50cVFBroY +/16iWGXZCX+37A+DSOfTWgSDPEFcKRx41UOpStHbITgVgEPieo/NWxlHmQKBgQDX +JOLs2RB6V0ilnpnjdPXzvncD9fHgmwvJap24BPeZX3HtXViqD76oZsu1mNCg9EW3 +zk3pnEyyoDlvSIreZerVq4kN3HWsCVP3Pqr0kz9g0CRtmy8RWr28hjHDfXD3xPUZ +iGnMEz7IOHOKv722/liFAprV1cNaLUmFbDNg3jmlaQKBgQDG5WwngPhOHmjTnSml +amfEz9a4yEhQqpqgVNW5wwoXOf6DbjL2m/maJh01giThj7inMcbpkZlIclxD0Eu6 +Lof+ctCeqSAJvaVPmd+nv8Yp26zsF1yM8ax9xXjrIvv9fSbycNveGTDCsNNTiYoW +QyvMqmN1kGy20SZbQDD/fLfqBQ== +-----END RSA PRIVATE KEY----- `, - cert: tags.stripIndents` - -----BEGIN CERTIFICATE----- - MIIDXTCCAkWgAwIBAgIJALz8gD/gAt0OMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV - BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX - aWRnaXRzIFB0eSBMdGQwHhcNMTgxMDIzMTgyMTQ5WhcNMTkxMDIzMTgyMTQ5WjBF - MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 - ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB - CgKCAQEAxAUVLFM+K3XDLQkBi7xt0s1Ip7JoHYDskzUDQNHjjMkUq5kvC/hf5Ei1 - J6qruJs3Xqg86Nl4+ed4ynUajAkRRibhp0P1SG1tgPssIK6iC7g8heYuDy9WkFuM - ie0513zjSn6bMEAK5TegxYAWCbaCZX/Fw9bDniabL/zuOv4sf8J4EPhsEENnH6sU - E9HxPUgQmNt1Tbd0j1Cd5PXrSTLyfVPRh0m9QhXTUHuxsse8XSn9U2swduxJTWRI - NmhffYn+O7kbJGI77xYr8u58Rsf3HCMI8DTKZNvQLChvvtLJ9ckyu7Q+T8emgklS - tASm3V2UtnriaK/IQEhgSdxqVRib3QIDAQABo1AwTjAdBgNVHQ4EFgQUDZBhVKdb - 3BRhLIhuuE522Vsul0IwHwYDVR0jBBgwFoAUDZBhVKdb3BRhLIhuuE522Vsul0Iw - DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABh9WWZwWLgb9/DcTxL72 - 6pI96t4jiF79Q+pPefkaIIi0mE6yodWrTAsBQu9I6bNRaEcCSoiXkP2bqskD/UGg - LwUFgSrDOAA3UjdHw3QU5g2NocduG7mcFwA40TB98sOsxsUyYlzSyWzoiQWwPYwb - hek1djuWkqPXsTjlj54PTPN/SjTFmo4p5Ip6nbRf2nOREl7v0rJpGbJvXiCMYyd+ - Zv+j4mRjCGo8ysMR2HjCUGkYReLAgKyyz3M7i8vevJhKslyOmy6Txn4F0nPVumaU - DDIy4xXPW1STWfsmSYJfYW3wa0wk+pJQ3j2cTzkPQQ8gwpvM3U9DJl43uwb37v6I - 7Q== - -----END CERTIFICATE----- + cert: ` +-----BEGIN CERTIFICATE----- +MIIDXTCCAkWgAwIBAgIJALz8gD/gAt0OMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTgxMDIzMTgyMTQ5WhcNMTkxMDIzMTgyMTQ5WjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAxAUVLFM+K3XDLQkBi7xt0s1Ip7JoHYDskzUDQNHjjMkUq5kvC/hf5Ei1 +J6qruJs3Xqg86Nl4+ed4ynUajAkRRibhp0P1SG1tgPssIK6iC7g8heYuDy9WkFuM +ie0513zjSn6bMEAK5TegxYAWCbaCZX/Fw9bDniabL/zuOv4sf8J4EPhsEENnH6sU +E9HxPUgQmNt1Tbd0j1Cd5PXrSTLyfVPRh0m9QhXTUHuxsse8XSn9U2swduxJTWRI +NmhffYn+O7kbJGI77xYr8u58Rsf3HCMI8DTKZNvQLChvvtLJ9ckyu7Q+T8emgklS +tASm3V2UtnriaK/IQEhgSdxqVRib3QIDAQABo1AwTjAdBgNVHQ4EFgQUDZBhVKdb +3BRhLIhuuE522Vsul0IwHwYDVR0jBBgwFoAUDZBhVKdb3BRhLIhuuE522Vsul0Iw +DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABh9WWZwWLgb9/DcTxL72 +6pI96t4jiF79Q+pPefkaIIi0mE6yodWrTAsBQu9I6bNRaEcCSoiXkP2bqskD/UGg +LwUFgSrDOAA3UjdHw3QU5g2NocduG7mcFwA40TB98sOsxsUyYlzSyWzoiQWwPYwb +hek1djuWkqPXsTjlj54PTPN/SjTFmo4p5Ip6nbRf2nOREl7v0rJpGbJvXiCMYyd+ +Zv+j4mRjCGo8ysMR2HjCUGkYReLAgKyyz3M7i8vevJhKslyOmy6Txn4F0nPVumaU +DDIy4xXPW1STWfsmSYJfYW3wa0wk+pJQ3j2cTzkPQQ8gwpvM3U9DJl43uwb37v6I +7Q== +-----END CERTIFICATE----- `, }, }).listen(proxyPort); diff --git a/packages/angular/build/src/builders/karma/tests/behavior/code-coverage_spec.ts b/packages/angular/build/src/builders/karma/tests/behavior/code-coverage_spec.ts index 835f48724dbe..9882af429b76 100644 --- a/packages/angular/build/src/builders/karma/tests/behavior/code-coverage_spec.ts +++ b/packages/angular/build/src/builders/karma/tests/behavior/code-coverage_spec.ts @@ -7,7 +7,6 @@ */ import { setTimeout } from 'node:timers/promises'; -import { tags } from '@angular-devkit/core'; import { last, tap } from 'rxjs'; import { execute } from '../../index'; import { BASE_OPTIONS, KARMA_BUILDER_INFO, describeKarmaBuilder } from '../setup'; @@ -96,12 +95,12 @@ describeKarmaBuilder(execute, KARMA_BUILDER_INFO, (harness, setupTarget) => { await harness.modifyFile('src/app/app.component.ts', (content) => { return content.replace( `title = 'app'`, - tags.stripIndents` - title = 'app'; + ` +title = 'app'; - async foo() { - return 'foo'; - } +async foo() { + return 'foo'; +} `, ); }); diff --git a/packages/angular/build/src/utils/index-file/augment-index-html_spec.ts b/packages/angular/build/src/utils/index-file/augment-index-html_spec.ts index 7ea16ab6121b..55adf8d88f0b 100644 --- a/packages/angular/build/src/utils/index-file/augment-index-html_spec.ts +++ b/packages/angular/build/src/utils/index-file/augment-index-html_spec.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ -import { tags } from '@angular-devkit/core'; import { AugmentIndexHtmlOptions, augmentIndexHtml } from './augment-index-html'; describe('augment-index-html', () => { @@ -25,7 +24,7 @@ describe('augment-index-html', () => { }; const oneLineHtml = (html: TemplateStringsArray) => - tags.stripIndents`${html}`.replace(/(>\s+)/g, '>'); + `${html}`.replace(/(>\s+)/g, '>').replace(/\s+ { const { content } = await augmentIndexHtml({ From c14ebe7d77168bc5d9a74e17108fc118498ed98e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 1 Oct 2025 05:05:57 +0000 Subject: [PATCH 151/228] build: update ossf/scorecard-action action to v2.4.3 See associated pull request for more information. --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 4b979ef1e3d4..6588cb8dec0b 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -30,7 +30,7 @@ jobs: persist-credentials: false - name: 'Run analysis' - uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2 + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 with: results_file: results.sarif results_format: sarif From 4779fe3ae8740100de24b674a8217e1d9a87baf3 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:59:51 -0400 Subject: [PATCH 152/228] refactor(@angular/build): switch back to rollup for chunk optimizer Rollup currently appears to be more effective at optimizing total output chunk count. While this is investigated further, the experimental chunk optimizer will be switched back to using rollup. --- packages/angular/build/BUILD.bazel | 2 +- packages/angular/build/package.json | 2 +- .../builders/application/chunk-optimizer.ts | 7 +- pnpm-lock.yaml | 482 +++++++++--------- .../e2e/tests/build/chunk-optimizer.ts | 2 +- 5 files changed, 260 insertions(+), 235 deletions(-) diff --git a/packages/angular/build/BUILD.bazel b/packages/angular/build/BUILD.bazel index 1a35e4159412..f3b7ad71fa63 100644 --- a/packages/angular/build/BUILD.bazel +++ b/packages/angular/build/BUILD.bazel @@ -111,7 +111,7 @@ ts_project( ":node_modules/picomatch", ":node_modules/piscina", ":node_modules/postcss", - ":node_modules/rolldown", + ":node_modules/rollup", ":node_modules/sass", ":node_modules/source-map-support", ":node_modules/tinyglobby", diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index e7dbcc6c5206..b677370dc0cf 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -37,7 +37,7 @@ "parse5-html-rewriting-stream": "8.0.0", "picomatch": "4.0.3", "piscina": "5.1.3", - "rolldown": "1.0.0-beta.38", + "rollup": "4.52.3", "sass": "1.90.0", "semver": "7.7.2", "source-map-support": "0.5.21", diff --git a/packages/angular/build/src/builders/application/chunk-optimizer.ts b/packages/angular/build/src/builders/application/chunk-optimizer.ts index 0ba059df291f..08a85dfb11c9 100644 --- a/packages/angular/build/src/builders/application/chunk-optimizer.ts +++ b/packages/angular/build/src/builders/application/chunk-optimizer.ts @@ -19,7 +19,7 @@ import type { Message, Metafile } from 'esbuild'; import assert from 'node:assert'; -import { type OutputAsset, type OutputChunk, rolldown } from 'rolldown'; +import { type OutputAsset, type OutputChunk, rollup } from 'rollup'; import { BuildOutputFile, BuildOutputFileType, @@ -216,7 +216,7 @@ export async function optimizeChunks( let bundle; let optimizedOutput; try { - bundle = await rolldown({ + bundle = await rollup({ input: mainFile, plugins: [ { @@ -252,8 +252,7 @@ export async function optimizeChunks( }); const result = await bundle.generate({ - minify: { mangle: false, compress: false }, - advancedChunks: { minSize: 8192 }, + compact: true, sourcemap, chunkFileNames: (chunkInfo) => `${chunkInfo.name.replace(/-[a-zA-Z0-9]{8}$/, '')}-[hash].js`, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76e6804d6ec6..587514fcc56e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -403,9 +403,9 @@ importers: piscina: specifier: 5.1.3 version: 5.1.3 - rolldown: - specifier: 1.0.0-beta.38 - version: 1.0.0-beta.38 + rollup: + specifier: 4.52.3 + version: 4.52.3 sass: specifier: 1.90.0 version: 1.90.0 @@ -1665,15 +1665,6 @@ packages: resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} - '@emnapi/core@1.5.0': - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.9': resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} @@ -2594,9 +2585,6 @@ packages: resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.0.5': - resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2760,9 +2748,6 @@ packages: resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@oxc-project/types@0.89.0': - resolution: {integrity: sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==} - '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -2910,96 +2895,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@rolldown/binding-android-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - - '@rolldown/binding-darwin-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@rolldown/binding-darwin-x64@1.0.0-beta.38': - resolution: {integrity: sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@rolldown/binding-freebsd-x64@1.0.0-beta.38': - resolution: {integrity: sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': - resolution: {integrity: sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': - resolution: {integrity: sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': - resolution: {integrity: sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': - resolution: {integrity: sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': - resolution: {integrity: sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': - resolution: {integrity: sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@rolldown/pluginutils@1.0.0-beta.38': - resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} - '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -3068,55 +2963,115 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.52.3': + resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.46.2': resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.52.3': + resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.46.2': resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.52.3': + resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.46.2': resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.52.3': + resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.46.2': resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.52.3': + resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.46.2': resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.3': + resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} + cpu: [arm] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm-musleabihf@4.46.2': resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm-musleabihf@4.52.3': + resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} + cpu: [arm] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm64-gnu@4.46.2': resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm64-gnu@4.52.3': + resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm64-musl@4.46.2': resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm64-musl@4.52.3': + resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.52.3': + resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] @@ -3129,51 +3084,112 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.52.3': + resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.46.2': resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.52.3': + resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-musl@4.46.2': resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] libc: [musl] + '@rollup/rollup-linux-riscv64-musl@4.52.3': + resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-s390x-gnu@4.46.2': resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] libc: [glibc] + '@rollup/rollup-linux-s390x-gnu@4.52.3': + resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.46.2': resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.52.3': + resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-musl@4.46.2': resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] libc: [musl] + '@rollup/rollup-linux-x64-musl@4.52.3': + resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openharmony-arm64@4.52.3': + resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.46.2': resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.52.3': + resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.46.2': resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.3': + resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.3': + resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.46.2': resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.52.3': + resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} + cpu: [x64] + os: [win32] + '@rollup/wasm-node@4.52.3': resolution: {integrity: sha512-Vltzfan6IBSm4dG3w8ArFVUMhBABbW/9uYMPnbYyv2Vk+Jry9qzlXKvxSZhDbvwtb0GJHDWwPOMj6d8G2cb9Tw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3242,9 +3258,6 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} @@ -3945,10 +3958,6 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - ansis@4.1.0: - resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} - engines: {node: '>=14'} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -7698,11 +7707,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.38: - resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rollup-license-plugin@3.0.2: resolution: {integrity: sha512-68LWDlUKxqLO4Si3Extca4X7P99tU7s0KLnVUzN6h6SDihGAWYMQ0q73XLnHbUmG0IFgvC0AzuYvbogceQ9Hcw==} engines: {node: '>=18.0.0'} @@ -7729,6 +7733,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.52.3: + resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -10074,22 +10083,6 @@ snapshots: '@discoveryjs/json-ext@0.6.3': {} - '@emnapi/core@1.5.0': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.5.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.1.0': - dependencies: - tslib: 2.8.1 - optional: true - '@esbuild/aix-ppc64@0.25.9': optional: true @@ -11022,13 +11015,6 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@napi-rs/wasm-runtime@1.0.5': - dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.1 - optional: true - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11238,8 +11224,6 @@ snapshots: '@opentelemetry/semantic-conventions@1.37.0': {} - '@oxc-project/types@0.89.0': {} - '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -11361,52 +11345,6 @@ snapshots: - react-native-b4a - supports-color - '@rolldown/binding-android-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-darwin-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-darwin-x64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-freebsd-x64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': - optional: true - - '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': - dependencies: - '@napi-rs/wasm-runtime': 1.0.5 - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/pluginutils@1.0.0-beta.38': {} - '@rollup/plugin-alias@5.1.1(rollup@4.46.2)': optionalDependencies: rollup: 4.46.2 @@ -11429,15 +11367,21 @@ snapshots: optionalDependencies: rollup: 4.46.2 - '@rollup/plugin-node-resolve@15.3.1(rollup@4.46.2)': + '@rollup/plugin-json@6.1.0(rollup@4.52.3)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.46.2) + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-node-resolve@15.3.1(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.46.2 + rollup: 4.52.3 '@rollup/plugin-node-resolve@16.0.1(rollup@4.46.2)': dependencies: @@ -11465,66 +11409,140 @@ snapshots: optionalDependencies: rollup: 4.46.2 + '@rollup/pluginutils@5.3.0(rollup@4.52.3)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.3 + '@rollup/rollup-android-arm-eabi@4.46.2': optional: true + '@rollup/rollup-android-arm-eabi@4.52.3': + optional: true + '@rollup/rollup-android-arm64@4.46.2': optional: true + '@rollup/rollup-android-arm64@4.52.3': + optional: true + '@rollup/rollup-darwin-arm64@4.46.2': optional: true + '@rollup/rollup-darwin-arm64@4.52.3': + optional: true + '@rollup/rollup-darwin-x64@4.46.2': optional: true + '@rollup/rollup-darwin-x64@4.52.3': + optional: true + '@rollup/rollup-freebsd-arm64@4.46.2': optional: true + '@rollup/rollup-freebsd-arm64@4.52.3': + optional: true + '@rollup/rollup-freebsd-x64@4.46.2': optional: true + '@rollup/rollup-freebsd-x64@4.52.3': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.3': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true + '@rollup/rollup-linux-arm64-musl@4.52.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.3': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true + '@rollup/rollup-linux-x64-gnu@4.52.3': + optional: true + '@rollup/rollup-linux-x64-musl@4.46.2': optional: true + '@rollup/rollup-linux-x64-musl@4.52.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.3': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.3': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.3': + optional: true + '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true + '@rollup/rollup-win32-x64-msvc@4.52.3': + optional: true + '@rollup/wasm-node@4.52.3': dependencies: '@types/estree': 1.0.8 @@ -11596,11 +11614,6 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 - '@tybys/wasm-util@0.10.1': - dependencies: - tslib: 2.8.1 - optional: true - '@types/accepts@1.3.7': dependencies: '@types/node': 22.18.6 @@ -12293,11 +12306,11 @@ snapshots: '@web/dev-server-rollup@0.6.4(bufferutil@4.0.9)': dependencies: - '@rollup/plugin-node-resolve': 15.3.1(rollup@4.46.2) + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.52.3) '@web/dev-server-core': 0.7.5(bufferutil@4.0.9) nanocolors: 0.2.13 parse5: 6.0.1 - rollup: 4.46.2 + rollup: 4.52.3 whatwg-url: 14.2.0 transitivePeerDependencies: - bufferutil @@ -12638,8 +12651,6 @@ snapshots: ansi-styles@6.2.3: {} - ansis@4.1.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -15955,7 +15966,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) - '@rollup/plugin-json': 6.1.0(rollup@4.46.2) + '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.3 ajv: 8.17.1 ansi-colors: 4.1.3 @@ -15971,14 +15982,14 @@ snapshots: ora: 8.2.0 piscina: 5.1.3 postcss: 8.5.6 - rollup-plugin-dts: 6.2.1(rollup@4.46.2)(typescript@5.9.2) + rollup-plugin-dts: 6.2.1(rollup@4.52.3)(typescript@5.9.2) rxjs: 7.8.2 sass: 1.90.0 tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 optionalDependencies: - rollup: 4.46.2 + rollup: 4.52.3 nock@14.0.10: dependencies: @@ -16901,27 +16912,6 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.38: - dependencies: - '@oxc-project/types': 0.89.0 - '@rolldown/pluginutils': 1.0.0-beta.38 - ansis: 4.1.0 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.38 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.38 - '@rolldown/binding-darwin-x64': 1.0.0-beta.38 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.38 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.38 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.38 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.38 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.38 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.38 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.38 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.38 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.38 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.38 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.38 - rollup-license-plugin@3.0.2: dependencies: get-npm-tarball-url: 2.1.0 @@ -16936,6 +16926,14 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 + rollup-plugin-dts@6.2.1(rollup@4.52.3)(typescript@5.9.2): + dependencies: + magic-string: 0.30.17 + rollup: 4.52.3 + typescript: 5.9.2 + optionalDependencies: + '@babel/code-frame': 7.27.1 + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.6)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) @@ -16969,6 +16967,34 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 + rollup@4.52.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.3 + '@rollup/rollup-android-arm64': 4.52.3 + '@rollup/rollup-darwin-arm64': 4.52.3 + '@rollup/rollup-darwin-x64': 4.52.3 + '@rollup/rollup-freebsd-arm64': 4.52.3 + '@rollup/rollup-freebsd-x64': 4.52.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.3 + '@rollup/rollup-linux-arm-musleabihf': 4.52.3 + '@rollup/rollup-linux-arm64-gnu': 4.52.3 + '@rollup/rollup-linux-arm64-musl': 4.52.3 + '@rollup/rollup-linux-loong64-gnu': 4.52.3 + '@rollup/rollup-linux-ppc64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-musl': 4.52.3 + '@rollup/rollup-linux-s390x-gnu': 4.52.3 + '@rollup/rollup-linux-x64-gnu': 4.52.3 + '@rollup/rollup-linux-x64-musl': 4.52.3 + '@rollup/rollup-openharmony-arm64': 4.52.3 + '@rollup/rollup-win32-arm64-msvc': 4.52.3 + '@rollup/rollup-win32-ia32-msvc': 4.52.3 + '@rollup/rollup-win32-x64-gnu': 4.52.3 + '@rollup/rollup-win32-x64-msvc': 4.52.3 + fsevents: 2.3.3 + router@2.2.0: dependencies: debug: 4.4.3(supports-color@10.2.2) @@ -18096,7 +18122,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.46.2 + rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.5.2 diff --git a/tests/legacy-cli/e2e/tests/build/chunk-optimizer.ts b/tests/legacy-cli/e2e/tests/build/chunk-optimizer.ts index 366eaa7b4f3d..703a14ececa9 100644 --- a/tests/legacy-cli/e2e/tests/build/chunk-optimizer.ts +++ b/tests/legacy-cli/e2e/tests/build/chunk-optimizer.ts @@ -15,5 +15,5 @@ export default async function () { }); const content = await readFile('dist/test-project/browser/main.js', 'utf-8'); - assert.match(content, /ɵɵdefineComponent/u); + assert.match(content, /\\u0275\\u0275defineComponent/u); } From 92a6b2ae6ceb498377a59e2e55d69cdd3dfa4b72 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 2 Oct 2025 12:47:50 +0000 Subject: [PATCH 153/228] build: update cross-repo angular dependencies See associated pull request for more information. --- package.json | 26 +-- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 268 +++++++++++++------------- 4 files changed, 155 insertions(+), 155 deletions(-) diff --git a/package.json b/package.json index ee76cac04f14..7db3383515a0 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.2", - "@angular/cdk": "20.2.5", - "@angular/common": "20.3.2", - "@angular/compiler": "20.3.2", - "@angular/compiler-cli": "20.3.2", - "@angular/core": "20.3.2", - "@angular/forms": "20.3.2", - "@angular/localize": "20.3.2", - "@angular/material": "20.2.5", + "@angular/animations": "20.3.3", + "@angular/cdk": "20.2.7", + "@angular/common": "20.3.3", + "@angular/compiler": "20.3.3", + "@angular/compiler-cli": "20.3.3", + "@angular/core": "20.3.3", + "@angular/forms": "20.3.3", + "@angular/localize": "20.3.3", + "@angular/material": "20.2.7", "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb", - "@angular/platform-browser": "20.3.2", - "@angular/platform-server": "20.3.2", - "@angular/router": "20.3.2", - "@angular/service-worker": "20.3.2", + "@angular/platform-browser": "20.3.3", + "@angular/platform-server": "20.3.3", + "@angular/router": "20.3.3", + "@angular/service-worker": "20.3.3", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index c4b4438fd6e6..2e11a7495c36 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.3.2", - "@angular/compiler": "20.3.2", - "@angular/core": "20.3.2", - "@angular/platform-browser": "20.3.2", - "@angular/platform-server": "20.3.2", - "@angular/router": "20.3.2", + "@angular/common": "20.3.3", + "@angular/compiler": "20.3.3", + "@angular/core": "20.3.3", + "@angular/platform-browser": "20.3.3", + "@angular/platform-server": "20.3.3", + "@angular/router": "20.3.3", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index aeb0394cf7bb..edeeb32117b2 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.3.2", - "@angular/compiler-cli": "20.3.2", + "@angular/compiler": "20.3.3", + "@angular/compiler-cli": "20.3.3", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 587514fcc56e..f73ba7f5eb1a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.2 - version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.3 + version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.5 - version: 20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.7 + version: 20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.2 - version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/compiler-cli': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@angular/core': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.2 - version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) '@angular/material': - specifier: 20.2.5 - version: 20.2.5(a59442ec553cb9c5cd8cee29e8e1722c) + specifier: 20.2.7 + version: 20.2.7(9c11a8eb564a221c173ca8f1e04d1698) '@angular/ng-dev': specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.2 - version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.3 + version: 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.2 - version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.2 - version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.2 - version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(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.3.2 - version: 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/core': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.2 - version: 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.3 + version: 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.2 - version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.2 - version: 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.3 + version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(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.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/compiler-cli': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.2': - resolution: {integrity: sha512-za7onSElEUbaI9iS8j7nKf8FjyvVng6wFsb2ZuHxr71dMgnYkqPfMu0KMP+mkZ3yUVc//7SllXcSkGBHShyCcw==} + '@angular/animations@20.3.3': + resolution: {integrity: sha512-nXpe1sAhMbQm4VTKhnP/zL2w5s2Kxjr9bZ7krOSTtyO9Wxjhd7oJN4mgCVRa80oEMheiDTmanPaMFLEN0pzang==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.2 + '@angular/core': 20.3.3 - '@angular/cdk@20.2.5': - resolution: {integrity: sha512-1cpR/5jeKXLR1D+PsEvRn0QhSWD3/AjtbugJF5nlx/7L90YXhNFCmNAxAkdFKSn4YIDoPwMHgvOpS7yb51wohQ==} + '@angular/cdk@20.2.7': + resolution: {integrity: sha512-QTqxPJSMXyjaswtpUrziwdoKRhqT2P9/Ascwzjg8T/SofV1850pc3YmonoOFrurYrmd4plZzWdr7raGcBWIh/Q==} 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.3.2': - resolution: {integrity: sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==} + '@angular/common@20.3.3': + resolution: {integrity: sha512-iArFCXvgYJCpxLZv8o6rV7Cxuqv1hbndoeUmQgL7ekXwVS6BA49VErXbTPM+pfhAJ+v1fc/DG3rzBwXk3eW2lw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.2 + '@angular/core': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.2': - resolution: {integrity: sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==} + '@angular/compiler-cli@20.3.3': + resolution: {integrity: sha512-kSIE6hkTiZGiJLyisp5Q6NXOHiDNOItp7N2HVNPrK1bqzM8foN6H6BE1a+LYO3Lwy3PkwQFzx03BnzxkM4sWng==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.2': - resolution: {integrity: sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==} + '@angular/compiler@20.3.3': + resolution: {integrity: sha512-7AUtF7PO8xo+jOgrhLRPXmt65M/KFuYIsVZGVLB1FTCUAPByFJEUYOSnUuHyvFQQqHesK4aYSP27slDpHH/PSA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.2': - resolution: {integrity: sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==} + '@angular/core@20.3.3': + resolution: {integrity: sha512-AWBCixxw4N9VgKT1uwrRPr1dH3CpT/ffcCsXJQ8TjzsKYjVBkXVht5OjtxJOWOQ2KaHwsGFEmDMv9fc1BHDFhQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,27 +1023,27 @@ packages: zone.js: optional: true - '@angular/forms@20.3.2': - resolution: {integrity: sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==} + '@angular/forms@20.3.3': + resolution: {integrity: sha512-Rv3sO1vOAbw03IRK30CB45eucxZ1rI0Jyaa6QVmDlOzQ4bktkanbGxQtaxBdc9bKPBO1SVx27eTbStR7i3BNRg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.2': - resolution: {integrity: sha512-RZMHgLZV1Aka7rUKvQbg08Dn+dMyVBEGTlUS6/bTDoB1Xq2UE9L8YKmlnEDQyzveO5vTsPvZZQRL4iLc4IokzQ==} + '@angular/localize@20.3.3': + resolution: {integrity: sha512-myToeQiFPzOxXu5CBoQPnMPCpM4HtQh9m+tiL5RsMtZs5NrD3DX9QxzVJl2Y4nozpphfQejoI1t2fbS7yM5qAQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.2 - '@angular/compiler-cli': 20.3.2 + '@angular/compiler': 20.3.3 + '@angular/compiler-cli': 20.3.3 - '@angular/material@20.2.5': - resolution: {integrity: sha512-zgmHqPykH3InEsVmNSpcVicXLWcYKHIt9Nv/J86K3NZDw4/IQgpfujnr7IotLwc9VpgI4Cl7Jbo95tFVFQAYmw==} + '@angular/material@20.2.7': + resolution: {integrity: sha512-VXsP5qkQQ3sCGkSHsgDku/OVlunGsqssOM057foOKJuajECsI3ZpGuLJ13nvLm9Z147UZOZfP463ixZIjd4XuQ==} peerDependencies: - '@angular/cdk': 20.2.5 + '@angular/cdk': 20.2.7 '@angular/common': ^20.0.0 || ^21.0.0 '@angular/core': ^20.0.0 || ^21.0.0 '@angular/forms': ^20.0.0 || ^21.0.0 @@ -1055,42 +1055,42 @@ packages: version: 0.0.0-b7672ff60456719e6d9b0cc052abc73a7adc8df2 hasBin: true - '@angular/platform-browser@20.3.2': - resolution: {integrity: sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==} + '@angular/platform-browser@20.3.3': + resolution: {integrity: sha512-RUWpg49GnXdINjomRFrE/SRioxEehYqUzDVskDWddNeNhV9Z21zeC6Ao2i5q8UKq0y/oq2ShX7XFLprxqLoLnQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.2 - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 + '@angular/animations': 20.3.3 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.2': - resolution: {integrity: sha512-D7tf5S5xxQQUDtw/dkMa2XePnxHwyZElN5FQP99ByiEy9PjT1iFjyKuP9jjHsI4Nmi+Juq0F1uo4azPfPaV/3w==} + '@angular/platform-server@20.3.3': + resolution: {integrity: sha512-8tu+Un0snSTyb0kq4xWa6DCbyyZzVjCVyZ68uT2Q0inoKM/ja/1wfYQQwroT8Yw7wg2IExjaJ2e6Pk5R2de4ew==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.2': - resolution: {integrity: sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==} + '@angular/router@20.3.3': + resolution: {integrity: sha512-IrO5GY/vmaWwNdfR51xswNnBSxeEuvQAUqK3H0UNxhZlIE9gUS6pbbSidGGrQOZK+i0nd/rDz7j+RV7h2NK9aA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.2': - resolution: {integrity: sha512-SdaJ61JrliZLHEQ7kY2L98FLsVcti9+GeKODJUsHpnS2dv9RVSmWKJSa01kLsdOY/6wc1h5EHwkTg1iGHK0aew==} + '@angular/service-worker@20.3.3': + resolution: {integrity: sha512-Md0jsR7qIe5w8QmjZ3jPcqT1bVbFNjJik0QC8c+YXbApdt9O658z7eqPjj+sSK0cr1I6+ppCRstIL68DKha8sg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.2 + '@angular/core': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -7518,7 +7518,7 @@ packages: puppeteer@18.2.1: resolution: {integrity: sha512-7+UhmYa7wxPh2oMRwA++k8UGVDxh3YdWFB52r9C3tM81T6BU7cuusUSxImz0GEYSOYUKk/YzIhkQ6+vc0gHbxQ==} engines: {node: '>=14.1.0'} - deprecated: < 24.10.2 is no longer supported + deprecated: < 24.15.0 is no longer supported q@1.4.1: resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==} @@ -9175,28 +9175,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9210,30 +9210,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.2': + '@angular/compiler@20.3.3': dependencies: tslib: 2.8.1 - '@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 zone.js: 0.15.1 - '@angular/forms@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2)': + '@angular/localize@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3)': dependencies: - '@angular/compiler': 20.3.2 - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular/compiler': 20.3.3 + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9241,13 +9241,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.5(a59442ec553cb9c5cd8cee29e8e1722c)': + '@angular/material@20.2.7(9c11a8eb564a221c173ca8f1e04d1698)': dependencies: - '@angular/cdk': 20.2.5(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 @@ -9312,35 +9312,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.2)(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.2(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.2(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -15962,10 +15962,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.3 ajv: 8.17.1 From cf2788bf038e580e22a714a833fdc2d91c1dc636 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 2 Oct 2025 15:51:39 -0400 Subject: [PATCH 154/228] release: cut the v20.3.4 release --- CHANGELOG.md | 25 +++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5e252a50ce1..a41fcd7977bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ + + +# 20.3.4 (2025-10-02) + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------- | +| [c94bf7ff0](https://github.com/angular/angular-cli/commit/c94bf7ff0845fe325c39737057ff1ed4ea553011) | fix | Out of the box support for PM2 | +| [465436c9f](https://github.com/angular/angular-cli/commit/465436c9fa21173befe5e39b61afb7f29435c2aa) | fix | use bracket notation for `process.env['pm_id']` | + +### @angular-devkit/build-angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------- | +| [bc6b63114](https://github.com/angular/angular-cli/commit/bc6b631146c719a337c937e95c7cc5ebca29254b) | fix | mark `InjectionToken` as pure for improved tree-shaking | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------- | +| [e510ff828](https://github.com/angular/angular-cli/commit/e510ff828f033478d8e1720050a7b3d75d551e16) | fix | mark `InjectionToken` as pure for improved tree-shaking | + + + # 20.3.3 (2025-09-24) diff --git a/package.json b/package.json index 7db3383515a0..60b8d42041b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.3", + "version": "20.3.4", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From d8ca86b58884b6e6b86f8f3a4b3894755a72d488 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 4 Oct 2025 05:05:27 +0000 Subject: [PATCH 155/228] build: update pnpm to v10.18.0 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 60b8d42041b4..c0d95b994f06 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.17.1", + "packageManager": "pnpm@10.18.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.17.1" + "pnpm": "10.18.0" }, "author": "Angular Authors", "license": "MIT", From d290c63d5e670939538940551fea77047c752cc9 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 5 Oct 2025 07:04:28 +0000 Subject: [PATCH 156/228] build: update github/codeql-action action to v3.30.6 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index fb639f1b62fb..a89471cde604 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@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 + uses: github/codeql-action/init@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 + uses: github/codeql-action/analyze@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6588cb8dec0b..d94a349e2d0a 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@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 + uses: github/codeql-action/upload-sarif@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 with: sarif_file: results.sarif From 9004951b92a8680a422623a199ec1fdac86eff36 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 6 Oct 2025 07:05:58 +0000 Subject: [PATCH 157/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 409 ++++++++++++++++++++++++++----------------------- 1 file changed, 215 insertions(+), 194 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f73ba7f5eb1a..36a33d335255 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.18.6 + version: 22.18.8 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.18.6)(rollup@4.46.2) + version: 0.5.3(@types/node@22.18.8)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.5.1 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.18.6)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.8)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -372,7 +372,7 @@ importers: version: 0.3.5 browserslist: specifier: ^4.23.0 - version: 4.26.2 + version: 4.26.3 esbuild: specifier: 0.25.9 version: 0.25.9 @@ -646,7 +646,7 @@ importers: version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: specifier: ^4.21.5 - version: 4.26.2 + version: 4.26.3 copy-webpack-plugin: specifier: 13.0.1 version: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) @@ -2638,16 +2638,16 @@ packages: resolution: {integrity: sha512-6bWhyvLXqCSfHiqlwzn9pScLZ+Qnvh/681GR/UEEPCMIVwfpRDBw0cCzy3/t2Dq8B7W2X/8pBgmw6MOiyE0DXQ==} engines: {node: '>= 20'} - '@octokit/auth-oauth-app@9.0.1': - resolution: {integrity: sha512-TthWzYxuHKLAbmxdFZwFlmwVyvynpyPmjwc+2/cI3cvbT7mHtsAW9b1LvQaNnAuWL+pFnqtxdmrU8QpF633i1g==} + '@octokit/auth-oauth-app@9.0.2': + resolution: {integrity: sha512-vmjSHeuHuM+OxZLzOuoYkcY3OPZ8erJ5lfswdTmm+4XiAKB5PmCk70bA1is4uwSl/APhRVAv4KHsgevWfEKIPQ==} engines: {node: '>= 20'} - '@octokit/auth-oauth-device@8.0.1': - resolution: {integrity: sha512-TOqId/+am5yk9zor0RGibmlqn4V0h8vzjxlw/wYr3qzkQxl8aBPur384D1EyHtqvfz0syeXji4OUvKkHvxk/Gw==} + '@octokit/auth-oauth-device@8.0.2': + resolution: {integrity: sha512-KW7Ywrz7ei7JX+uClWD2DN1259fnkoKuVdhzfpQ3/GdETaCj4Tx0IjvuJrwhP/04OhcMu5yR6tjni0V6LBihdw==} engines: {node: '>= 20'} - '@octokit/auth-oauth-user@6.0.0': - resolution: {integrity: sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==} + '@octokit/auth-oauth-user@6.0.1': + resolution: {integrity: sha512-vlKsL1KUUPvwXpv574zvmRd+/4JiDFXABIZNM39+S+5j2kODzGgjk7w5WtiQ1x24kRKNaE7v9DShNbw43UA3Hw==} engines: {node: '>= 20'} '@octokit/auth-token@6.0.0': @@ -2658,8 +2658,8 @@ packages: resolution: {integrity: sha512-jOT8V1Ba5BdC79sKrRWDdMT5l1R+XNHTPR6CPWzUP2EcfAcvIHZWF0eAbmRcpOOP5gVIwnqNg0C4nvh6Abc3OA==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + '@octokit/endpoint@11.0.1': + resolution: {integrity: sha512-7P1dRAZxuWAOPI7kXfio88trNi/MegQ0IJD3vfgC3b+LZo1Qe6gRJc2v0mz2USWWJOKrB2h5spXCzGbw+fAdqA==} engines: {node: '>= 20'} '@octokit/graphql-schema@15.26.0': @@ -2673,8 +2673,8 @@ packages: resolution: {integrity: sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==} engines: {node: '>= 20'} - '@octokit/oauth-methods@6.0.0': - resolution: {integrity: sha512-Q8nFIagNLIZgM2odAraelMcDssapc+lF+y3OlcIPxyAU+knefO8KmozGqfnma1xegRDP4z5M73ABsamn72bOcA==} + '@octokit/oauth-methods@6.0.1': + resolution: {integrity: sha512-xi6Iut3izMCFzXBJtxxJehxJmAKjE8iwj6L5+raPRwlTNKAbOOBJX7/Z8AF5apD4aXvc2skwIdOnC+CQ4QuA8Q==} engines: {node: '>= 20'} '@octokit/openapi-types@25.1.0': @@ -2705,8 +2705,12 @@ packages: resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} engines: {node: '>= 20'} - '@octokit/request@10.0.3': - resolution: {integrity: sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==} + '@octokit/request-error@7.0.1': + resolution: {integrity: sha512-CZpFwV4+1uBrxu7Cw8E5NCXDWFNf18MSY23TdxCBgjw1tXXHvTrZVsXlW8hgFTOLw8RQR1BBrMvYRtuyaijHMA==} + engines: {node: '>= 20'} + + '@octokit/request@10.0.5': + resolution: {integrity: sha512-TXnouHIYLtgDhKo+N6mXATnDBkV05VwbR0TtMWpgTHIoQdRQfCSzmy/LGqR1AbRMbijq/EckC/E3/ZNcU92NaQ==} engines: {node: '>= 20'} '@octokit/rest@22.0.0': @@ -3190,8 +3194,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.52.3': - resolution: {integrity: sha512-Vltzfan6IBSm4dG3w8ArFVUMhBABbW/9uYMPnbYyv2Vk+Jry9qzlXKvxSZhDbvwtb0GJHDWwPOMj6d8G2cb9Tw==} + '@rollup/wasm-node@4.52.4': + resolution: {integrity: sha512-QME8thp2j0GvRu/H8kz3uOawi45rexNIys38kITnMYp8Wl+gyeoIIuKyw8y0Lrq6xSAXgGCoqDyHD+m0wX1jnQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3429,8 +3433,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.6': - resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==} + '@types/node@22.18.8': + resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} '@types/node@24.5.2': resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} @@ -3489,11 +3493,14 @@ packages: '@types/send@0.17.5': resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} + '@types/send@1.2.0': + resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==} + '@types/serve-index@1.9.4': resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - '@types/serve-static@1.15.8': - resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==} + '@types/serve-static@1.15.9': + resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==} '@types/shelljs@0.8.17': resolution: {integrity: sha512-IDksKYmQA2W9MkQjiyptbMmcQx+8+Ol6b7h6dPU5S05JyiQDSb/nZKnrMrZqGwgV6VkVdl6/SPCKPDlMRvqECg==} @@ -3588,8 +3595,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.44.1': - resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} + '@typescript-eslint/types@8.45.0': + resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -4172,8 +4179,8 @@ packages: resolution: {integrity: sha512-yyFDnoo0M1qlZfWyxihEphjxleNIv1W603kwqMiBE9B6SPFgZbysvoqOpMZr/l0wmErkRbBTp4gOwljtGx/TdQ==} hasBin: true - baseline-browser-mapping@2.8.8: - resolution: {integrity: sha512-be0PUaPsQX/gPWWgFsdD+GFzaoig5PXaUC1xLkQiYdDnANU8sMnHoQd8JhbJQuvTWrWLyeFN9Imb5Qtfvr4RrQ==} + baseline-browser-mapping@2.8.12: + resolution: {integrity: sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==} hasBin: true basic-ftp@5.0.5: @@ -4259,8 +4266,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.26.2: - resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4333,8 +4340,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001745: - resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} + caniuse-lite@1.0.30001747: + resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4859,8 +4866,8 @@ packages: devtools-protocol@0.0.1045489: resolution: {integrity: sha512-D+PTmWulkuQW4D1NTiCRCFxF7pQPn0hgp4YyX4wAQ6xYXKOadSWPR3ENGDQ47MW/Ewc9v2rpC/UEEGahgBYpSQ==} - devtools-protocol@0.0.1495869: - resolution: {integrity: sha512-i+bkd9UYFis40RcnkW7XrOprCujXRAHg62IVh/Ah3G8MmNXpCGt1m0dTFhSdx/AVs8XEMbdOGRwdkR1Bcta8AA==} + devtools-protocol@0.0.1508733: + resolution: {integrity: sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==} di@0.0.1: resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} @@ -4936,8 +4943,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.227: - resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==} + electron-to-chromium@1.5.230: + resolution: {integrity: sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -5482,6 +5489,10 @@ packages: resolution: {integrity: sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==} engines: {node: '>=18'} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -5541,8 +5552,8 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regex.js@1.0.1: - resolution: {integrity: sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==} + glob-to-regex.js@1.2.0: + resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -5583,16 +5594,16 @@ packages: resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==} engines: {node: '>=0.10.0'} - google-auth-library@10.3.0: - resolution: {integrity: sha512-ylSE3RlCRZfZB56PFJSfUCuiuPq83Fx8hqu1KPWGK8FVdSaxlp/qkeMMX/DT/18xkwXIHvXEXkZsljRwfrdEfQ==} + google-auth-library@10.4.0: + resolution: {integrity: sha512-CmIrSy1bqMQUsPmA9+hcSbAXL80cFhu40cGMUjCaLpNKVzzvi+0uAHq8GNZxkoGYIsTX4ZQ7e4aInAqWxgn4fg==} engines: {node: '>=18'} google-auth-library@9.15.1: resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} engines: {node: '>=14'} - google-gax@5.0.3: - resolution: {integrity: sha512-DkWybwgkV8HA9aIizNEHEUHd8ho1BzGGQ/YMGDsTt167dQ8pk/oMiwxpUFvh6Ta93m8ZN7KwdWmP3o46HWjV+A==} + google-gax@5.0.4: + resolution: {integrity: sha512-HmQ6zIYBs2EikTk+kjeHmtHprNTEpsnVaKONw9cwZZwUNCkUb+D5RYrJpCxyjdvIDvJp3wLbVReolJLRZRms1g==} engines: {node: '>=18'} google-logging-utils@0.0.2: @@ -5981,8 +5992,8 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -6613,8 +6624,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.47.0: - resolution: {integrity: sha512-Xey8IZA57tfotV/TN4d6BmccQuhFP+CqRiI7TTNdipZdZBzF2WnzUcH//Cudw6X4zJiUbo/LTuU/HPA/iC/pNg==} + memfs@4.48.1: + resolution: {integrity: sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==} meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -6911,8 +6922,8 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-releases@2.0.21: - resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + node-releases@2.0.23: + resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} @@ -7511,8 +7522,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.22.3: - resolution: {integrity: sha512-M/Jhg4PWRANSbL/C9im//Yb55wsWBS5wdp+h59iwM+EPicVQQCNs56iC5aEAO7avfDPRfxs4MM16wHjOYHNJEw==} + puppeteer-core@24.23.0: + resolution: {integrity: sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -7819,8 +7830,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} select-hose@2.0.0: @@ -8220,8 +8231,8 @@ packages: resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} engines: {node: '>=12.17'} - tapable@2.2.3: - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} tar-fs@2.1.1: @@ -8742,8 +8753,8 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} - webdriver-bidi-protocol@0.2.11: - resolution: {integrity: sha512-Y9E1/oi4XMxcR8AT0ZC4OvYntl34SPgwjmELH+owjBr0korAX4jKgZULBWILGCVGdVCQ0dodTToIETozhG8zvA==} + webdriver-bidi-protocol@0.3.6: + resolution: {integrity: sha512-mlGndEOA9yK9YAbvtxaPTqdi/kaCWYYfwrZvGzcmkr/3lWM+tQj53BxtpVd6qbC6+E5OnHXgCcAhre6AkXzxjA==} webdriver-js-extender@2.1.0: resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} @@ -9396,7 +9407,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.2 + browserslist: 4.26.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -10538,7 +10549,7 @@ snapshots: arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) html-entities: 2.6.0 retry-request: 8.0.2(supports-color@10.2.2) teeny-request: 10.1.0(supports-color@10.2.2) @@ -10573,8 +10584,8 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.2) - google-gax: 5.0.3(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) + google-gax: 5.0.4(supports-color@10.2.2) grpc-gcp: 1.0.1(protobufjs@7.5.4) is: 3.3.2 lodash.snakecase: 4.1.1 @@ -10610,7 +10621,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@grpc/proto-loader@0.7.15': dependencies: @@ -11088,36 +11099,36 @@ snapshots: '@octokit/auth-app@8.1.0': dependencies: - '@octokit/auth-oauth-app': 9.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.3 + '@octokit/auth-oauth-app': 9.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 '@octokit/request-error': 7.0.0 '@octokit/types': 14.1.0 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.2 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-app@9.0.1': + '@octokit/auth-oauth-app@9.0.2': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-device@8.0.1': + '@octokit/auth-oauth-device@8.0.2': dependencies: - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-user@6.0.0': + '@octokit/auth-oauth-user@6.0.1': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/auth-token@6.0.0': {} @@ -11126,15 +11137,15 @@ snapshots: dependencies: '@octokit/auth-token': 6.0.0 '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.3 + '@octokit/request': 10.0.5 '@octokit/request-error': 7.0.0 '@octokit/types': 15.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@11.0.0': + '@octokit/endpoint@11.0.1': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/graphql-schema@15.26.0': @@ -11144,18 +11155,18 @@ snapshots: '@octokit/graphql@9.0.1': dependencies: - '@octokit/request': 10.0.3 + '@octokit/request': 10.0.5 '@octokit/types': 14.1.0 universal-user-agent: 7.0.3 '@octokit/oauth-authorization-url@8.0.0': {} - '@octokit/oauth-methods@6.0.0': + '@octokit/oauth-methods@6.0.1': dependencies: '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/request': 10.0.3 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 '@octokit/openapi-types@25.1.0': {} @@ -11179,11 +11190,15 @@ snapshots: dependencies: '@octokit/types': 14.1.0 - '@octokit/request@10.0.3': + '@octokit/request-error@7.0.1': dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 + + '@octokit/request@10.0.5': + dependencies: + '@octokit/endpoint': 11.0.1 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.3 @@ -11543,7 +11558,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.3': optional: true - '@rollup/wasm-node@4.52.3': + '@rollup/wasm-node@4.52.4': dependencies: '@types/estree': 1.0.8 optionalDependencies: @@ -11588,7 +11603,7 @@ snapshots: '@stylistic/eslint-plugin@5.4.0(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.44.1 + '@typescript-eslint/types': 8.45.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11616,7 +11631,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/babel__code-frame@7.0.6': {} @@ -11646,17 +11661,17 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.18.6 - '@types/serve-static': 1.15.8 + '@types/node': 22.18.8 + '@types/serve-static': 1.15.9 chokidar: 3.6.0 '@types/chai@5.2.2': @@ -11665,11 +11680,11 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} @@ -11677,11 +11692,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/content-disposition@0.5.9': {} @@ -11692,11 +11707,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/debounce@1.2.4': {} @@ -11704,7 +11719,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/ejs@3.1.5': {} @@ -11724,40 +11739,40 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 0.17.5 + '@types/send': 1.2.0 '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 0.17.5 + '@types/send': 1.2.0 '@types/express@4.17.23': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.14.0 - '@types/serve-static': 1.15.8 + '@types/serve-static': 1.15.9 '@types/express@5.0.3': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 5.0.7 - '@types/serve-static': 1.15.8 + '@types/serve-static': 1.15.9 '@types/folder-hash@4.0.4': {} '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/http-assert@1.5.6': {} @@ -11765,7 +11780,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/ini@4.1.1': {} @@ -11791,7 +11806,7 @@ snapshots: '@types/karma@6.3.9': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11811,13 +11826,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11830,14 +11845,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@types/node@22.18.6': + '@types/node@22.18.8': dependencies: undici-types: 6.21.0 @@ -11849,7 +11864,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11857,11 +11872,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11874,12 +11889,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/q@0.0.32': {} @@ -11900,32 +11915,36 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 + + '@types/send@1.2.0': + dependencies: + '@types/node': 22.18.8 '@types/serve-index@1.9.4': dependencies: '@types/express': 5.0.3 - '@types/serve-static@1.15.8': + '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/stack-trace@0.0.33': {} @@ -11938,17 +11957,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11959,11 +11978,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/yargs-parser@21.0.3': {} @@ -11975,7 +11994,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -12039,7 +12058,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.44.1': {} + '@typescript-eslint/types@8.45.0': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12348,7 +12367,7 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.22.3(bufferutil@4.0.9) + puppeteer-core: 24.23.0(bufferutil@4.0.9) transitivePeerDependencies: - bare-buffer - bufferutil @@ -12766,8 +12785,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.26.2 - caniuse-lite: 1.0.30001745 + browserslist: 4.26.3 + caniuse-lite: 1.0.30001747 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12857,7 +12876,7 @@ snapshots: baseline-browser-mapping@2.6.3: {} - baseline-browser-mapping@2.8.8: {} + baseline-browser-mapping@2.8.12: {} basic-ftp@5.0.5: {} @@ -13013,13 +13032,13 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.26.2: + browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.8 - caniuse-lite: 1.0.30001745 - electron-to-chromium: 1.5.227 - node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.2) + baseline-browser-mapping: 2.8.12 + caniuse-lite: 1.0.30001747 + electron-to-chromium: 1.5.230 + node-releases: 2.0.23 + update-browserslist-db: 1.1.3(browserslist@4.26.3) browserstack@1.6.1: dependencies: @@ -13100,7 +13119,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001745: {} + caniuse-lite@1.0.30001747: {} caseless@0.12.0: {} @@ -13167,7 +13186,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13176,9 +13195,9 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@9.1.0(devtools-protocol@0.0.1495869): + chromium-bidi@9.1.0(devtools-protocol@0.0.1508733): dependencies: - devtools-protocol: 0.0.1495869 + devtools-protocol: 0.0.1508733 mitt: 3.0.1 zod: 3.25.76 @@ -13370,14 +13389,14 @@ snapshots: dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 - schema-utils: 4.3.2 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 tinyglobby: 0.2.14 webpack: 5.101.2(esbuild@0.25.9) core-js-compat@3.45.1: dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 core-util-is@1.0.2: {} @@ -13601,7 +13620,7 @@ snapshots: devtools-protocol@0.0.1045489: {} - devtools-protocol@0.0.1495869: {} + devtools-protocol@0.0.1508733: {} di@0.0.1: {} @@ -13691,7 +13710,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.227: {} + electron-to-chromium@1.5.230: {} emoji-regex@10.5.0: {} @@ -13730,7 +13749,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.18.6 + '@types/node': 22.18.8 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -13746,7 +13765,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.3 + tapable: 2.3.0 ent@2.2.2: dependencies: @@ -14471,6 +14490,8 @@ snapshots: transitivePeerDependencies: - supports-color + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -14541,7 +14562,7 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.0.1(tslib@2.8.1): + glob-to-regex.js@1.2.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -14601,7 +14622,7 @@ snapshots: pify: 2.3.0 pinkie-promise: 2.0.1 - google-auth-library@10.3.0(supports-color@10.2.2): + google-auth-library@10.4.0(supports-color@10.2.2): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 @@ -14625,13 +14646,12 @@ snapshots: - encoding - supports-color - google-gax@5.0.3(supports-color@10.2.2): + google-gax@5.0.4(supports-color@10.2.2): dependencies: '@grpc/grpc-js': 1.14.0 '@grpc/proto-loader': 0.8.0 - abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 @@ -15034,9 +15054,10 @@ snapshots: dependencies: get-east-asian-width: 1.4.0 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -15281,7 +15302,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15536,7 +15557,7 @@ snapshots: fresh: 0.5.2 http-assert: 1.5.0 http-errors: 1.8.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 koa-compose: 4.1.0 koa-convert: 2.0.0 on-finished: 2.4.1 @@ -15767,11 +15788,11 @@ snapshots: media-typer@1.1.0: {} - memfs@4.47.0: + memfs@4.48.1: dependencies: '@jsonjoy.com/json-pack': 1.14.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.0.1(tslib@2.8.1) + glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.5.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -15817,8 +15838,8 @@ snapshots: mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)): dependencies: - schema-utils: 4.3.2 - tapable: 2.2.3 + schema-utils: 4.3.3 + tapable: 2.3.0 webpack: 5.101.2(esbuild@0.25.9) minimalistic-assert@1.0.1: {} @@ -15967,10 +15988,10 @@ snapshots: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) - '@rollup/wasm-node': 4.52.3 + '@rollup/wasm-node': 4.52.4 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.26.2 + browserslist: 4.26.3 chokidar: 4.0.3 commander: 14.0.1 dependency-graph: 1.0.0 @@ -16049,7 +16070,7 @@ snapshots: transitivePeerDependencies: - supports-color - node-releases@2.0.21: {} + node-releases@2.0.23: {} nopt@8.1.0: dependencies: @@ -16560,7 +16581,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.6 + '@types/node': 22.18.8 long: 5.3.2 protractor@7.0.0: @@ -16648,14 +16669,14 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.22.3(bufferutil@4.0.9): + puppeteer-core@24.23.0(bufferutil@4.0.9): dependencies: '@puppeteer/browsers': 2.10.10 - chromium-bidi: 9.1.0(devtools-protocol@0.0.1495869) + chromium-bidi: 9.1.0(devtools-protocol@0.0.1508733) debug: 4.4.3(supports-color@10.2.2) - devtools-protocol: 0.0.1495869 + devtools-protocol: 0.0.1508733 typed-query-selector: 2.12.0 - webdriver-bidi-protocol: 0.2.11 + webdriver-bidi-protocol: 0.3.6 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer @@ -16934,12 +16955,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.6)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.8)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 rollup@4.46.2: dependencies: @@ -17073,7 +17094,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - schema-utils@4.3.2: + schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 @@ -17609,7 +17630,7 @@ snapshots: array-back: 6.2.2 wordwrapjs: 5.1.0 - tapable@2.2.3: {} + tapable@2.3.0: {} tar-fs@2.1.1: dependencies: @@ -17675,7 +17696,7 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.43.1 webpack: 5.101.2(esbuild@0.25.9) @@ -17783,14 +17804,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.18.6)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.8)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.6 + '@types/node': 22.18.8 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17975,9 +17996,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.26.2): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -18198,7 +18219,7 @@ snapshots: web-vitals@4.2.4: {} - webdriver-bidi-protocol@0.2.11: {} + webdriver-bidi-protocol@0.3.6: {} webdriver-js-extender@2.1.0: dependencies: @@ -18226,11 +18247,11 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.47.0 + memfs: 4.48.1 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) @@ -18241,7 +18262,7 @@ snapshots: '@types/express': 4.17.23 '@types/express-serve-static-core': 4.19.6 '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.8 + '@types/serve-static': 1.15.9 '@types/sockjs': 0.3.36 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 @@ -18257,7 +18278,7 @@ snapshots: launch-editor: 2.11.1 open: 10.2.0 p-retry: 6.2.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 @@ -18295,7 +18316,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.26.2 + browserslist: 4.26.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -18307,8 +18328,8 @@ snapshots: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.3 + schema-utils: 4.3.3 + tapable: 2.3.0 terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)) watchpack: 2.4.4 webpack-sources: 3.3.3 @@ -18357,7 +18378,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 From 7f7140680b75ff6b41f7f04349fe10cd928f1a23 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Mon, 6 Oct 2025 11:54:41 -0400 Subject: [PATCH 158/228] fix(@angular/build): cleanup karma temporary directory after process exit The temporary directory created for the karma builder will now be cleaned up after the process exits. (cherry picked from commit 1c2d49ec736818d22773916d7eaafd3446275ea0) --- .../build/src/builders/karma/application_builder.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/angular/build/src/builders/karma/application_builder.ts b/packages/angular/build/src/builders/karma/application_builder.ts index 004c46930ff9..b504146df2a4 100644 --- a/packages/angular/build/src/builders/karma/application_builder.ts +++ b/packages/angular/build/src/builders/karma/application_builder.ts @@ -9,6 +9,7 @@ import type { BuilderContext, BuilderOutput } from '@angular-devkit/architect'; import type { Config, ConfigOptions, FilePattern, InlinePluginDef, Server } from 'karma'; import { randomUUID } from 'node:crypto'; +import { rmSync } from 'node:fs'; import * as fs from 'node:fs/promises'; import type { IncomingMessage, ServerResponse } from 'node:http'; import { createRequire } from 'node:module'; @@ -386,6 +387,12 @@ async function initializeApplication( const outputPath = path.join(context.workspaceRoot, 'dist/test-out', randomUUID()); const projectSourceRoot = await getProjectSourceRoot(context); + // Setup exit cleanup for temporary directory + const handleProcessExit = () => rmSync(outputPath, { recursive: true, force: true }); + process.once('exit', handleProcessExit); + process.once('SIGINT', handleProcessExit); + process.once('uncaughtException', handleProcessExit); + const [karma, entryPoints] = await Promise.all([ import('karma'), collectEntrypoints(options, context, projectSourceRoot), From 2b1a8017a01fc5b449184f4916de4a90ad1aa228 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 7 Oct 2025 08:54:37 +0000 Subject: [PATCH 159/228] build: clean up BUILD files and update dependencies This commit cleans up various `BUILD.bazel` files by removing unused file globs from `RUNTIME_ASSETS` and test sources. Additionally, the conditional `include_npm` setting in `tests/legacy-cli/e2e.bzl` has been removed. (cherry picked from commit 3bfa1e9391effae2671ff2020bfd7d5e70a162a6) --- MODULE.bazel | 6 - MODULE.bazel.lock | 2872 ++++++++++++++++- packages/angular/build/BUILD.bazel | 2 - packages/angular/create/BUILD.bazel | 7 +- packages/angular/pwa/BUILD.bazel | 2 - .../schematics/tools/BUILD.bazel | 2 - packages/ngtools/webpack/BUILD.bazel | 2 - packages/schematics/angular/BUILD.bazel | 1 - tests/legacy-cli/e2e.bzl | 7 +- 9 files changed, 2851 insertions(+), 50 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index fe0c73f54f67..fa37075ee01d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -19,12 +19,6 @@ multiple_version_override( ], ) -bazel_dep(name = "rules_python", version = "1.5.3") -single_version_override( - module_name = "rules_python", - version = "1.5.3", -) - bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 6341292aeaf4..4cf2273bd08c 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -35,6 +35,7 @@ "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "aa975a83e72bcaac62ee61ab12b788ea324a1d05c4aab28aadb202f647881679", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/source.json": "786cbc49377fb6bf4859aec5b1c61f8fc26b08e9fdb929e2dde2e1e2a406bd24", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", @@ -90,6 +91,7 @@ "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", "https://bcr.bazel.build/modules/protobuf/29.0-rc3/source.json": "c16a6488fb279ef578da7098e605082d72ed85fc8d843eaae81e7d27d0f4625d", @@ -159,9 +161,17 @@ "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", - "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d", - "https://bcr.bazel.build/modules/rules_python/1.5.3/MODULE.bazel": "d0b7fb08458ca7fd80a26bc00c9e0f1d011609cc3da0381faa2eccd88c6ebd98", - "https://bcr.bazel.build/modules/rules_python/1.5.3/source.json": "06961e322e15331a2d88115a65af5d3f77cc46793f9d9aa0f928b95287337f12", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.0.0/source.json": "b0162a65c6312e45e7912e39abd1a7f8856c2c7e41ecc9b6dc688a6f6400a917", "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", @@ -2244,35 +2254,2751 @@ "recordedRepoMappingEntries": [] } }, - "@@rules_python~//python/uv:uv.bzl%uv": { + "@@rules_python~//python/extensions:pip.bzl%pip": { "general": { - "bzlTransitiveDigest": "mxPY/VBQrSC9LvYeRrlxD+0IkDTQ4+36NGMnGWlN/Vw=", - "usagesDigest": "cgxWLOUNY3lbTVCUxf/uOAgiV2TBcy1fpOASyjfLjHU=", - "recordedFileInputs": {}, + "bzlTransitiveDigest": "8USX8QvzWk9pjl0ion2dAqEqjB3yzkmi3d13o89Cchs=", + "usagesDigest": "K3E4RGDnEgGXkrLOS8/ma4NTUiLvGkMrRIhPiFxv8u0=", + "recordedFileInputs": { + "@@rules_python~//tools/publish/requirements_linux.txt": "8175b4c8df50ae2f22d1706961884beeb54e7da27bd2447018314a175981997d", + "@@rules_fuzzing~//fuzzing/requirements.txt": "ab04664be026b632a0d2a2446c4f65982b7654f5b6851d2f9d399a19b7242a5b", + "@@rules_python~//tools/publish/requirements_windows.txt": "7673adc71dc1a81d3661b90924d7a7c0fc998cd508b3cb4174337cef3f2de556", + "@@protobuf~//python/requirements.txt": "983be60d3cec4b319dcab6d48aeb3f5b2f7c3350f26b3a9e97486c37967c73c5", + "@@rules_python~//tools/publish/requirements_darwin.txt": "2994136eab7e57b083c3de76faf46f70fad130bc8e7360a7fed2b288b69e79dc" + }, "recordedDirentsInputs": {}, - "envVariables": {}, + "envVariables": { + "RULES_PYTHON_REPO_DEBUG": null, + "RULES_PYTHON_REPO_DEBUG_VERBOSITY": null + }, "generatedRepoSpecs": { - "uv": { - "bzlFile": "@@rules_python~//python/uv/private:uv_toolchains_repo.bzl", - "ruleClassName": "uv_toolchains_repo", + "pip_deps_310_numpy": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_310_setuptools": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_10_host//:python", + "repo": "pip_deps_310", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_311_numpy": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_311_setuptools": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "pip_deps_311", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_312_numpy": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_312_setuptools": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_12_host//:python", + "repo": "pip_deps_312", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_38_numpy": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_38_setuptools": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_8_host//:python", + "repo": "pip_deps_38", + "requirement": "setuptools<=70.3.0" + } + }, + "pip_deps_39_numpy": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "numpy<=1.26.1" + } + }, + "pip_deps_39_setuptools": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@pip_deps//{name}:{target}", + "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", + "repo": "pip_deps_39", + "requirement": "setuptools<=70.3.0" + } + }, + "rules_fuzzing_py_deps_310_absl_py": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_310_six": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_10_host//:python", + "repo": "rules_fuzzing_py_deps_310", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_311_absl_py": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_311_six": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_fuzzing_py_deps_311", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_312_absl_py": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_312_six": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_12_host//:python", + "repo": "rules_fuzzing_py_deps_312", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_38_absl_py": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_38_six": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_8_host//:python", + "repo": "rules_fuzzing_py_deps_38", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_fuzzing_py_deps_39_absl_py": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "absl-py==2.0.0 --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3" + } + }, + "rules_fuzzing_py_deps_39_six": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_fuzzing_py_deps//{name}:{target}", + "extra_pip_args": [ + "--require-hashes" + ], + "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", + "repo": "rules_fuzzing_py_deps_39", + "requirement": "six==1.16.0 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + } + }, + "rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "backports.tarfile-1.2.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", + "urls": [ + "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "backports_tarfile-1.2.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "backports-tarfile==1.2.0", + "sha256": "d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", + "urls": [ + "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_certifi_py3_none_any_922820b5": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "certifi-2024.8.30-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "urls": [ + "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_certifi_sdist_bec941d2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "certifi-2024.8.30.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "certifi==2024.8.30", + "sha256": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", + "urls": [ + "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "urls": [ + "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_ppc64le_46bf4316": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "urls": [ + "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "urls": [ + "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "urls": [ + "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "urls": [ + "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", + "urls": [ + "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cffi_sdist_1c39c601": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cffi-1.17.1.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cffi==1.17.1", + "sha256": "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "urls": [ + "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "urls": [ + "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "urls": [ + "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "urls": [ + "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "urls": [ + "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_ppc64le_ce031db0": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "urls": [ + "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "urls": [ + "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "urls": [ + "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "urls": [ + "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_ppc64le_f1a2f519": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "urls": [ + "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "urls": [ + "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "urls": [ + "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "urls": [ + "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "charset_normalizer-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "urls": [ + "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_charset_normalizer_sdist_223217c3": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "charset_normalizer-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "charset-normalizer==3.4.0", + "sha256": "223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "urls": [ + "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", + "urls": [ + "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", + "urls": [ + "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", + "urls": [ + "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", + "urls": [ + "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", + "urls": [ + "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", + "urls": [ + "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_cryptography_sdist_315b9001": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "cryptography-43.0.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "cryptography==43.0.3", + "sha256": "315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", + "urls": [ + "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "docutils-0.21.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "urls": [ + "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_docutils_sdist_3a6b1873": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "docutils-0.21.2.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "docutils==0.21.2", + "sha256": "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "urls": [ + "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_idna_py3_none_any_946d195a": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "idna-3.10-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", + "urls": [ + "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_idna_sdist_12f65c9b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "idna-3.10.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "idna==3.10", + "sha256": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "urls": [ + "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "importlib_metadata-8.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", + "urls": [ + "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_importlib_metadata_sdist_71522656": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "importlib_metadata-8.5.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "importlib-metadata==8.5.0", + "sha256": "71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", + "urls": [ + "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.classes-3.4.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", + "urls": [ + "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco.classes-3.4.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-classes==3.4.0", + "sha256": "47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", + "urls": [ + "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.context-6.0.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", + "urls": [ + "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_context-6.0.1.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-context==6.0.1", + "sha256": "9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", + "urls": [ + "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "jaraco.functools-4.1.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649", + "urls": [ + "https://files.pythonhosted.org/packages/9f/4f/24b319316142c44283d7540e76c7b5a6dbd5db623abd86bb7b3491c21018/jaraco.functools-4.1.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jaraco_functools-4.1.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jaraco-functools==4.1.0", + "sha256": "70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", + "urls": [ + "https://files.pythonhosted.org/packages/ab/23/9894b3df5d0a6eb44611c36aec777823fc2e07740dabbd0b810e19594013/jaraco_functools-4.1.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "jeepney-0.8.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755", + "urls": [ + "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_jeepney_sdist_5efe48d2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "jeepney-0.8.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "jeepney==0.8.0", + "sha256": "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806", + "urls": [ + "https://files.pythonhosted.org/packages/d6/f4/154cf374c2daf2020e05c3c6a03c91348d59b23c5366e968feb198306fdf/jeepney-0.8.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_keyring_py3_none_any_5426f817": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "keyring-25.4.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf", + "urls": [ + "https://files.pythonhosted.org/packages/83/25/e6d59e5f0a0508d0dca8bb98c7f7fd3772fc943ac3f53d5ab18a218d32c0/keyring-25.4.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_keyring_sdist_b07ebc55": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "keyring-25.4.1.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "keyring==25.4.1", + "sha256": "b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b", + "urls": [ + "https://files.pythonhosted.org/packages/a5/1c/2bdbcfd5d59dc6274ffb175bc29aa07ecbfab196830e0cfbde7bd861a2ea/keyring-25.4.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "markdown_it_py-3.0.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "urls": [ + "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "markdown-it-py-3.0.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "markdown-it-py==3.0.0", + "sha256": "e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", + "urls": [ + "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_mdurl_py3_none_any_84008a41": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "mdurl-0.1.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "urls": [ + "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_mdurl_sdist_bb413d29": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "mdurl-0.1.2.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "mdurl==0.1.2", + "sha256": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", + "urls": [ + "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "more_itertools-10.5.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "urls": [ + "https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_more_itertools_sdist_5482bfef": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "more-itertools-10.5.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "more-itertools==10.5.0", + "sha256": "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6", + "urls": [ + "https://files.pythonhosted.org/packages/51/78/65922308c4248e0eb08ebcbe67c95d48615cc6f27854b6f2e57143e9178f/more-itertools-10.5.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86", + "urls": [ + "https://files.pythonhosted.org/packages/b3/89/1daff5d9ba5a95a157c092c7c5f39b8dd2b1ddb4559966f808d31cfb67e0/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811", + "urls": [ + "https://files.pythonhosted.org/packages/2c/b6/42fc3c69cabf86b6b81e4c051a9b6e249c5ba9f8155590222c2622961f58/nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200", + "urls": [ + "https://files.pythonhosted.org/packages/45/b9/833f385403abaf0023c6547389ec7a7acf141ddd9d1f21573723a6eab39a/nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164", + "urls": [ + "https://files.pythonhosted.org/packages/05/2b/85977d9e11713b5747595ee61f381bc820749daf83f07b90b6c9964cf932/nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189", + "urls": [ + "https://files.pythonhosted.org/packages/72/f2/5c894d5265ab80a97c68ca36f25c8f6f0308abac649aaf152b74e7e854a8/nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64le_34c03fa7": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad", + "urls": [ + "https://files.pythonhosted.org/packages/ab/a7/375afcc710dbe2d64cfbd69e31f82f3e423d43737258af01f6a56d844085/nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b", + "urls": [ + "https://files.pythonhosted.org/packages/c2/a8/3bb02d0c60a03ad3a112b76c46971e9480efa98a8946677b5a59f60130ca/nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307", + "urls": [ + "https://files.pythonhosted.org/packages/1b/63/6ab90d0e5225ab9780f6c9fb52254fa36b52bb7c188df9201d05b647e5e1/nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe", + "urls": [ + "https://files.pythonhosted.org/packages/a3/da/0c4e282bc3cff4a0adf37005fa1fb42257673fbc1bbf7d1ff639ec3d255a/nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a", + "urls": [ + "https://files.pythonhosted.org/packages/de/81/c291231463d21da5f8bba82c8167a6d6893cc5419b0639801ee5d3aeb8a9/nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204", + "urls": [ + "https://files.pythonhosted.org/packages/eb/61/73a007c74c37895fdf66e0edcd881f5eaa17a348ff02f4bb4bc906d61085/nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "nh3-0.2.18-cp37-abi3-win_amd64.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844", + "urls": [ + "https://files.pythonhosted.org/packages/26/8d/53c5b19c4999bdc6ba95f246f4ef35ca83d7d7423e5e38be43ad66544e5d/nh3-0.2.18-cp37-abi3-win_amd64.whl" + ] + } + }, + "rules_python_publish_deps_311_nh3_sdist_94a16692": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "nh3-0.2.18.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "nh3==0.2.18", + "sha256": "94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4", + "urls": [ + "https://files.pythonhosted.org/packages/62/73/10df50b42ddb547a907deeb2f3c9823022580a7a47281e8eae8e003a9639/nh3-0.2.18.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pkginfo-1.10.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097", + "urls": [ + "https://files.pythonhosted.org/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pkginfo_sdist_5df73835": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pkginfo-1.10.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pkginfo==1.10.0", + "sha256": "5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297", + "urls": [ + "https://files.pythonhosted.org/packages/2f/72/347ec5be4adc85c182ed2823d8d1c7b51e13b9a6b0c1aae59582eca652df/pkginfo-1.10.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "pycparser-2.22-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "urls": [ + "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pycparser_sdist_491c8be9": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pycparser-2.22.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pycparser==2.22", + "sha256": "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "urls": [ + "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "pygments-2.18.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", + "urls": [ + "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pygments_sdist_786ff802": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pygments-2.18.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pygments==2.18.0", + "sha256": "786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "urls": [ + "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "filename": "pywin32_ctypes-0.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", + "urls": [ + "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "pywin32-ctypes-0.2.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "pywin32-ctypes==0.2.3", + "sha256": "d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", + "urls": [ + "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "readme_renderer-44.0-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", + "urls": [ + "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_readme_renderer_sdist_8712034e": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "readme_renderer-44.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "readme-renderer==44.0", + "sha256": "8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", + "urls": [ + "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_py3_none_any_70761cfe": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests-2.32.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "urls": [ + "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_sdist_55365417": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-2.32.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests==2.32.3", + "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "urls": [ + "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "urls": [ + "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "requests-toolbelt-1.0.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "requests-toolbelt==1.0.0", + "sha256": "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", + "urls": [ + "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rfc3986-2.0.0-py2.py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", + "urls": [ + "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rfc3986_sdist_97aacf9d": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rfc3986-2.0.0.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rfc3986==2.0.0", + "sha256": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", + "urls": [ + "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_rich_py3_none_any_9836f509": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "rich-13.9.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.3", + "sha256": "9836f5096eb2172c9e77df411c1b009bace4193d6a481d534fea75ebba758283", + "urls": [ + "https://files.pythonhosted.org/packages/9a/e2/10e9819cf4a20bd8ea2f5dabafc2e6bf4a78d6a0965daeb60a4b34d1c11f/rich-13.9.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_rich_sdist_bc1e01b8": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "rich-13.9.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "rich==13.9.3", + "sha256": "bc1e01b899537598cf02579d2b9f4a415104d3fc439313a7a2c165d76557a08e", + "urls": [ + "https://files.pythonhosted.org/packages/d9/e9/cf9ef5245d835065e6673781dbd4b8911d352fb770d56cf0879cf11b7ee1/rich-13.9.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "filename": "SecretStorage-3.3.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", + "urls": [ + "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_secretstorage_sdist_2403533e": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "SecretStorage-3.3.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "secretstorage==3.3.3", + "sha256": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77", + "urls": [ + "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_twine_py3_none_any_215dbe7b": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "twine-5.1.1-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997", + "urls": [ + "https://files.pythonhosted.org/packages/5d/ec/00f9d5fd040ae29867355e559a94e9a8429225a0284a3f5f091a3878bfc0/twine-5.1.1-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_twine_sdist_9aa08251": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "twine-5.1.1.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "twine==5.1.1", + "sha256": "9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db", + "urls": [ + "https://files.pythonhosted.org/packages/77/68/bd982e5e949ef8334e6f7dcf76ae40922a8750aa2e347291ae1477a4782b/twine-5.1.1.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "urllib3-2.2.3-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "urls": [ + "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_urllib3_sdist_e7d814a8": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "urllib3-2.2.3.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "urllib3==2.2.3", + "sha256": "e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", + "urls": [ + "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz" + ] + } + }, + "rules_python_publish_deps_311_zipp_py3_none_any_a817ac80": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "filename": "zipp-3.20.2-py3-none-any.whl", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", + "urls": [ + "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl" + ] + } + }, + "rules_python_publish_deps_311_zipp_sdist_bc9eb26f": { + "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl", + "ruleClassName": "whl_library", + "attributes": { + "dep_template": "@rules_python_publish_deps//{name}:{target}", + "experimental_target_platforms": [ + "cp311_linux_aarch64", + "cp311_linux_arm", + "cp311_linux_ppc", + "cp311_linux_s390x", + "cp311_linux_x86_64", + "cp311_osx_aarch64", + "cp311_osx_x86_64", + "cp311_windows_x86_64" + ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], + "filename": "zipp-3.20.2.tar.gz", + "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", + "repo": "rules_python_publish_deps_311", + "requirement": "zipp==3.20.2", + "sha256": "bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", + "urls": [ + "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz" + ] + } + }, + "pip_deps": { + "bzlFile": "@@rules_python~//python/private/pypi:hub_repository.bzl", + "ruleClassName": "hub_repository", "attributes": { - "toolchain_type": "'@@rules_python~//python/uv:uv_toolchain_type'", - "toolchain_names": [ - "none" + "repo_name": "pip_deps", + "extra_hub_aliases": {}, + "whl_map": { + "numpy": "{\"pip_deps_310_numpy\":[{\"version\":\"3.10\"}],\"pip_deps_311_numpy\":[{\"version\":\"3.11\"}],\"pip_deps_312_numpy\":[{\"version\":\"3.12\"}],\"pip_deps_38_numpy\":[{\"version\":\"3.8\"}],\"pip_deps_39_numpy\":[{\"version\":\"3.9\"}]}", + "setuptools": "{\"pip_deps_310_setuptools\":[{\"version\":\"3.10\"}],\"pip_deps_311_setuptools\":[{\"version\":\"3.11\"}],\"pip_deps_312_setuptools\":[{\"version\":\"3.12\"}],\"pip_deps_38_setuptools\":[{\"version\":\"3.8\"}],\"pip_deps_39_setuptools\":[{\"version\":\"3.9\"}]}" + }, + "packages": [ + "numpy", + "setuptools" ], - "toolchain_implementations": { - "none": "'@@rules_python~//python:none'" + "groups": {} + } + }, + "rules_fuzzing_py_deps": { + "bzlFile": "@@rules_python~//python/private/pypi:hub_repository.bzl", + "ruleClassName": "hub_repository", + "attributes": { + "repo_name": "rules_fuzzing_py_deps", + "extra_hub_aliases": {}, + "whl_map": { + "absl_py": "{\"rules_fuzzing_py_deps_310_absl_py\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_absl_py\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_absl_py\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_absl_py\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_absl_py\":[{\"version\":\"3.9\"}]}", + "six": "{\"rules_fuzzing_py_deps_310_six\":[{\"version\":\"3.10\"}],\"rules_fuzzing_py_deps_311_six\":[{\"version\":\"3.11\"}],\"rules_fuzzing_py_deps_312_six\":[{\"version\":\"3.12\"}],\"rules_fuzzing_py_deps_38_six\":[{\"version\":\"3.8\"}],\"rules_fuzzing_py_deps_39_six\":[{\"version\":\"3.9\"}]}" }, - "toolchain_compatible_with": { - "none": [ - "@platforms//:incompatible" - ] + "packages": [ + "absl_py", + "six" + ], + "groups": {} + } + }, + "rules_python_publish_deps": { + "bzlFile": "@@rules_python~//python/private/pypi:hub_repository.bzl", + "ruleClassName": "hub_repository", + "attributes": { + "repo_name": "rules_python_publish_deps", + "extra_hub_aliases": {}, + "whl_map": { + "backports_tarfile": "{\"rules_python_publish_deps_311_backports_tarfile_py3_none_any_77e284d7\":[{\"filename\":\"backports.tarfile-1.2.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_backports_tarfile_sdist_d75e02c2\":[{\"filename\":\"backports_tarfile-1.2.0.tar.gz\",\"version\":\"3.11\"}]}", + "certifi": "{\"rules_python_publish_deps_311_certifi_py3_none_any_922820b5\":[{\"filename\":\"certifi-2024.8.30-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_certifi_sdist_bec941d2\":[{\"filename\":\"certifi-2024.8.30.tar.gz\",\"version\":\"3.11\"}]}", + "cffi": "{\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_a1ed2dd2\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_ppc64le_46bf4316\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_s390x_a24ed04c\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_610faea7\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_aarch64_a9b15d49\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_fc48c783\":[{\"filename\":\"cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cffi_sdist_1c39c601\":[{\"filename\":\"cffi-1.17.1.tar.gz\",\"version\":\"3.11\"}]}", + "charset_normalizer": "{\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_0d99dd8f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_c57516e5\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_6dba5d19\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_bf4475b8\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_ppc64le_ce031db0\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8ff4e7cd\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_3710a975\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_aarch64_47334db7\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_ppc64le_f1a2f519\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_s390x_63bc5c4a\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_2_x86_64_bcb4f8ea\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_cee4373f\":[{\"filename\":\"charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_fe9f97fe\":[{\"filename\":\"charset_normalizer-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_charset_normalizer_sdist_223217c3\":[{\"filename\":\"charset_normalizer-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "cryptography": "{\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_846da004\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_0f996e72\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_f7b178f1\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_c2e6fc39\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_e1be4655\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_df6b6c6d\":[{\"filename\":\"cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_cryptography_sdist_315b9001\":[{\"filename\":\"cryptography-43.0.3.tar.gz\",\"version\":\"3.11\"}]}", + "docutils": "{\"rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9\":[{\"filename\":\"docutils-0.21.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_docutils_sdist_3a6b1873\":[{\"filename\":\"docutils-0.21.2.tar.gz\",\"version\":\"3.11\"}]}", + "idna": "{\"rules_python_publish_deps_311_idna_py3_none_any_946d195a\":[{\"filename\":\"idna-3.10-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_idna_sdist_12f65c9b\":[{\"filename\":\"idna-3.10.tar.gz\",\"version\":\"3.11\"}]}", + "importlib_metadata": "{\"rules_python_publish_deps_311_importlib_metadata_py3_none_any_45e54197\":[{\"filename\":\"importlib_metadata-8.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_importlib_metadata_sdist_71522656\":[{\"filename\":\"importlib_metadata-8.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_classes": "{\"rules_python_publish_deps_311_jaraco_classes_py3_none_any_f662826b\":[{\"filename\":\"jaraco.classes-3.4.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_classes_sdist_47a024b5\":[{\"filename\":\"jaraco.classes-3.4.0.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_context": "{\"rules_python_publish_deps_311_jaraco_context_py3_none_any_f797fc48\":[{\"filename\":\"jaraco.context-6.0.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_context_sdist_9bae4ea5\":[{\"filename\":\"jaraco_context-6.0.1.tar.gz\",\"version\":\"3.11\"}]}", + "jaraco_functools": "{\"rules_python_publish_deps_311_jaraco_functools_py3_none_any_ad159f13\":[{\"filename\":\"jaraco.functools-4.1.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jaraco_functools_sdist_70f7e0e2\":[{\"filename\":\"jaraco_functools-4.1.0.tar.gz\",\"version\":\"3.11\"}]}", + "jeepney": "{\"rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad\":[{\"filename\":\"jeepney-0.8.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_jeepney_sdist_5efe48d2\":[{\"filename\":\"jeepney-0.8.0.tar.gz\",\"version\":\"3.11\"}]}", + "keyring": "{\"rules_python_publish_deps_311_keyring_py3_none_any_5426f817\":[{\"filename\":\"keyring-25.4.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_keyring_sdist_b07ebc55\":[{\"filename\":\"keyring-25.4.1.tar.gz\",\"version\":\"3.11\"}]}", + "markdown_it_py": "{\"rules_python_publish_deps_311_markdown_it_py_py3_none_any_35521684\":[{\"filename\":\"markdown_it_py-3.0.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_markdown_it_py_sdist_e3f60a94\":[{\"filename\":\"markdown-it-py-3.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "mdurl": "{\"rules_python_publish_deps_311_mdurl_py3_none_any_84008a41\":[{\"filename\":\"mdurl-0.1.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_mdurl_sdist_bb413d29\":[{\"filename\":\"mdurl-0.1.2.tar.gz\",\"version\":\"3.11\"}]}", + "more_itertools": "{\"rules_python_publish_deps_311_more_itertools_py3_none_any_037b0d32\":[{\"filename\":\"more_itertools-10.5.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_more_itertools_sdist_5482bfef\":[{\"filename\":\"more-itertools-10.5.0.tar.gz\",\"version\":\"3.11\"}]}", + "nh3": "{\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_14c5a72e\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_macosx_10_12_x86_64_7b7c2a3c\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_aarch64_42c64511\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_armv7l_0411beb0\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64_5f36b271\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_ppc64le_34c03fa7\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_s390x_19aaba96\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_manylinux_2_17_x86_64_de3ceed6\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_aarch64_f0eca9ca\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_armv7l_3a157ab1\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_musllinux_1_2_x86_64_36c95d4b\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_cp37_abi3_win_amd64_8ce0f819\":[{\"filename\":\"nh3-0.2.18-cp37-abi3-win_amd64.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_nh3_sdist_94a16692\":[{\"filename\":\"nh3-0.2.18.tar.gz\",\"version\":\"3.11\"}]}", + "pkginfo": "{\"rules_python_publish_deps_311_pkginfo_py3_none_any_889a6da2\":[{\"filename\":\"pkginfo-1.10.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pkginfo_sdist_5df73835\":[{\"filename\":\"pkginfo-1.10.0.tar.gz\",\"version\":\"3.11\"}]}", + "pycparser": "{\"rules_python_publish_deps_311_pycparser_py3_none_any_c3702b6d\":[{\"filename\":\"pycparser-2.22-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pycparser_sdist_491c8be9\":[{\"filename\":\"pycparser-2.22.tar.gz\",\"version\":\"3.11\"}]}", + "pygments": "{\"rules_python_publish_deps_311_pygments_py3_none_any_b8e6aca0\":[{\"filename\":\"pygments-2.18.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pygments_sdist_786ff802\":[{\"filename\":\"pygments-2.18.0.tar.gz\",\"version\":\"3.11\"}]}", + "pywin32_ctypes": "{\"rules_python_publish_deps_311_pywin32_ctypes_py3_none_any_8a151337\":[{\"filename\":\"pywin32_ctypes-0.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_pywin32_ctypes_sdist_d162dc04\":[{\"filename\":\"pywin32-ctypes-0.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "readme_renderer": "{\"rules_python_publish_deps_311_readme_renderer_py3_none_any_2fbca89b\":[{\"filename\":\"readme_renderer-44.0-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_readme_renderer_sdist_8712034e\":[{\"filename\":\"readme_renderer-44.0.tar.gz\",\"version\":\"3.11\"}]}", + "requests": "{\"rules_python_publish_deps_311_requests_py3_none_any_70761cfe\":[{\"filename\":\"requests-2.32.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_sdist_55365417\":[{\"filename\":\"requests-2.32.3.tar.gz\",\"version\":\"3.11\"}]}", + "requests_toolbelt": "{\"rules_python_publish_deps_311_requests_toolbelt_py2_none_any_cccfdd66\":[{\"filename\":\"requests_toolbelt-1.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_requests_toolbelt_sdist_7681a0a3\":[{\"filename\":\"requests-toolbelt-1.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rfc3986": "{\"rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b\":[{\"filename\":\"rfc3986-2.0.0-py2.py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rfc3986_sdist_97aacf9d\":[{\"filename\":\"rfc3986-2.0.0.tar.gz\",\"version\":\"3.11\"}]}", + "rich": "{\"rules_python_publish_deps_311_rich_py3_none_any_9836f509\":[{\"filename\":\"rich-13.9.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_rich_sdist_bc1e01b8\":[{\"filename\":\"rich-13.9.3.tar.gz\",\"version\":\"3.11\"}]}", + "secretstorage": "{\"rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662\":[{\"filename\":\"SecretStorage-3.3.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_secretstorage_sdist_2403533e\":[{\"filename\":\"SecretStorage-3.3.3.tar.gz\",\"version\":\"3.11\"}]}", + "twine": "{\"rules_python_publish_deps_311_twine_py3_none_any_215dbe7b\":[{\"filename\":\"twine-5.1.1-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_twine_sdist_9aa08251\":[{\"filename\":\"twine-5.1.1.tar.gz\",\"version\":\"3.11\"}]}", + "urllib3": "{\"rules_python_publish_deps_311_urllib3_py3_none_any_ca899ca0\":[{\"filename\":\"urllib3-2.2.3-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_urllib3_sdist_e7d814a8\":[{\"filename\":\"urllib3-2.2.3.tar.gz\",\"version\":\"3.11\"}]}", + "zipp": "{\"rules_python_publish_deps_311_zipp_py3_none_any_a817ac80\":[{\"filename\":\"zipp-3.20.2-py3-none-any.whl\",\"version\":\"3.11\"}],\"rules_python_publish_deps_311_zipp_sdist_bc9eb26f\":[{\"filename\":\"zipp-3.20.2.tar.gz\",\"version\":\"3.11\"}]}" }, - "toolchain_target_settings": {} + "packages": [ + "backports_tarfile", + "certifi", + "charset_normalizer", + "docutils", + "idna", + "importlib_metadata", + "jaraco_classes", + "jaraco_context", + "jaraco_functools", + "keyring", + "markdown_it_py", + "mdurl", + "more_itertools", + "nh3", + "pkginfo", + "pygments", + "readme_renderer", + "requests", + "requests_toolbelt", + "rfc3986", + "rich", + "twine", + "urllib3", + "zipp" + ], + "groups": {} } } }, + "moduleExtensionMetadata": { + "useAllRepos": "NO", + "reproducible": false + }, "recordedRepoMappingEntries": [ + [ + "bazel_features~", + "bazel_features_globals", + "bazel_features~~version_extension~bazel_features_globals" + ], + [ + "bazel_features~", + "bazel_features_version", + "bazel_features~~version_extension~bazel_features_version" + ], + [ + "rules_python~", + "bazel_features", + "bazel_features~" + ], + [ + "rules_python~", + "bazel_skylib", + "bazel_skylib~" + ], [ "rules_python~", "bazel_tools", @@ -2280,8 +5006,108 @@ ], [ "rules_python~", - "platforms", - "platforms" + "pypi__build", + "rules_python~~internal_deps~pypi__build" + ], + [ + "rules_python~", + "pypi__click", + "rules_python~~internal_deps~pypi__click" + ], + [ + "rules_python~", + "pypi__colorama", + "rules_python~~internal_deps~pypi__colorama" + ], + [ + "rules_python~", + "pypi__importlib_metadata", + "rules_python~~internal_deps~pypi__importlib_metadata" + ], + [ + "rules_python~", + "pypi__installer", + "rules_python~~internal_deps~pypi__installer" + ], + [ + "rules_python~", + "pypi__more_itertools", + "rules_python~~internal_deps~pypi__more_itertools" + ], + [ + "rules_python~", + "pypi__packaging", + "rules_python~~internal_deps~pypi__packaging" + ], + [ + "rules_python~", + "pypi__pep517", + "rules_python~~internal_deps~pypi__pep517" + ], + [ + "rules_python~", + "pypi__pip", + "rules_python~~internal_deps~pypi__pip" + ], + [ + "rules_python~", + "pypi__pip_tools", + "rules_python~~internal_deps~pypi__pip_tools" + ], + [ + "rules_python~", + "pypi__pyproject_hooks", + "rules_python~~internal_deps~pypi__pyproject_hooks" + ], + [ + "rules_python~", + "pypi__setuptools", + "rules_python~~internal_deps~pypi__setuptools" + ], + [ + "rules_python~", + "pypi__tomli", + "rules_python~~internal_deps~pypi__tomli" + ], + [ + "rules_python~", + "pypi__wheel", + "rules_python~~internal_deps~pypi__wheel" + ], + [ + "rules_python~", + "pypi__zipp", + "rules_python~~internal_deps~pypi__zipp" + ], + [ + "rules_python~", + "pythons_hub", + "rules_python~~python~pythons_hub" + ], + [ + "rules_python~~python~pythons_hub", + "python_3_10_host", + "rules_python~~python~python_3_10_host" + ], + [ + "rules_python~~python~pythons_hub", + "python_3_11_host", + "rules_python~~python~python_3_11_host" + ], + [ + "rules_python~~python~pythons_hub", + "python_3_12_host", + "rules_python~~python~python_3_12_host" + ], + [ + "rules_python~~python~pythons_hub", + "python_3_8_host", + "rules_python~~python~python_3_8_host" + ], + [ + "rules_python~~python~pythons_hub", + "python_3_9_host", + "rules_python~~python~python_3_9_host" ] ] } diff --git a/packages/angular/build/BUILD.bazel b/packages/angular/build/BUILD.bazel index f3b7ad71fa63..8102d101e166 100644 --- a/packages/angular/build/BUILD.bazel +++ b/packages/angular/build/BUILD.bazel @@ -56,8 +56,6 @@ RUNTIME_ASSETS = glob( include = [ "src/**/schema.json", "src/**/*.js", - "src/**/*.mjs", - "src/**/*.html", ], ) + [ "builders.json", diff --git a/packages/angular/create/BUILD.bazel b/packages/angular/create/BUILD.bazel index 37d46ad44ced..87c1896531d1 100644 --- a/packages/angular/create/BUILD.bazel +++ b/packages/angular/create/BUILD.bazel @@ -7,12 +7,7 @@ load("//tools:defaults.bzl", "npm_package", "ts_project") licenses(["notice"]) -RUNTIME_ASSETS = glob( - include = [ - "src/*.js", - "src/*.mjs", - ], -) + [ +RUNTIME_ASSETS = [ "package.json", ] diff --git a/packages/angular/pwa/BUILD.bazel b/packages/angular/pwa/BUILD.bazel index 6072cdd88d51..6cdb370a397b 100644 --- a/packages/angular/pwa/BUILD.bazel +++ b/packages/angular/pwa/BUILD.bazel @@ -15,8 +15,6 @@ npm_link_all_packages() RUNTIME_ASSETS = glob( include = [ - "pwa/*.js", - "pwa/*.mjs", "pwa/files/**/*", ], ) + [ diff --git a/packages/angular_devkit/schematics/tools/BUILD.bazel b/packages/angular_devkit/schematics/tools/BUILD.bazel index f1b13a40ea77..4bfd80127524 100644 --- a/packages/angular_devkit/schematics/tools/BUILD.bazel +++ b/packages/angular_devkit/schematics/tools/BUILD.bazel @@ -14,7 +14,6 @@ ts_project( include = ["**/*.ts"], exclude = [ "**/*_spec.ts", - "test/**/*.ts", ], ), data = ["package.json"], @@ -35,7 +34,6 @@ ts_project( srcs = glob( include = [ "**/*_spec.ts", - "test/**/*.ts", ], ), deps = [ diff --git a/packages/ngtools/webpack/BUILD.bazel b/packages/ngtools/webpack/BUILD.bazel index 2dd79ca285e1..791df1d229d0 100644 --- a/packages/ngtools/webpack/BUILD.bazel +++ b/packages/ngtools/webpack/BUILD.bazel @@ -21,7 +21,6 @@ ts_project( ], exclude = [ "src/**/*_spec.ts", - "src/**/*_spec_helpers.ts", ], ) + [ "index.ts", @@ -43,7 +42,6 @@ ts_project( srcs = glob( include = [ "src/**/*_spec.ts", - "src/**/*_spec_helpers.ts", ], ), deps = [ diff --git a/packages/schematics/angular/BUILD.bazel b/packages/schematics/angular/BUILD.bazel index 57887c2cf63d..8a4577fd028a 100644 --- a/packages/schematics/angular/BUILD.bazel +++ b/packages/schematics/angular/BUILD.bazel @@ -60,7 +60,6 @@ RUNTIME_ASSETS = [ include = [ "*/schema.json", "*/files/**/*", - "*/other-files/**/*", "*/implements-files/**/*", "*/type-files/**/*", "*/functional-files/**/*", diff --git a/tests/legacy-cli/e2e.bzl b/tests/legacy-cli/e2e.bzl index 57ed1da1bebf..ee9241e8d973 100644 --- a/tests/legacy-cli/e2e.bzl +++ b/tests/legacy-cli/e2e.bzl @@ -129,12 +129,7 @@ def _e2e_tests(name, runner, toolchain, **kwargs): tags = tags, toolchains = toolchains, node_toolchain = toolchain, - include_npm = select({ - # For Windows testing mode, we use the real global NPM as otherwise this - # will be a lot of files that need to be brought from WSL to the host FS. - "@platforms//os:windows": False, - "//conditions:default": True, - }), + include_npm = False, **kwargs ) From 37df62af9853fe9804eaed854a6716afea4cb4b6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 7 Oct 2025 08:58:40 +0000 Subject: [PATCH 160/228] build: update rules_browsers digest to 508168a See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 58 +++++++++++++++++++++++------------------------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index fa37075ee01d..795429d992ea 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -47,7 +47,7 @@ git_override( bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", - commit = "6749ba4c0dc5e04536369fa91fdb2d827b6705ff", + commit = "508168a93dcbadfd2504f8ce775e2c19ebfe7fad", remote = "https://github.com/devversion/rules_browsers.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 4cf2273bd08c..3c22285d137f 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -549,9 +549,9 @@ "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", - "usagesDigest": "1QffQgMsAO4zhe8vcwqME94TRDAlQADSJn4p/MOIYv4=", + "usagesDigest": "AOonxlxnGEBOvI7SdKSZSHqZGrbcZpC2lCKog8pQLL0=", "recordedFileInputs": { - "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" + "@@rules_browsers~//package.json": "d5e7a05131b6ebf4c09d49afe82c3018182415b3a9c53000a32a7032f491d2c4" }, "recordedDirentsInputs": {}, "envVariables": {}, @@ -729,8 +729,8 @@ }, "@@rules_browsers~//browsers:extensions.bzl%browsers": { "general": { - "bzlTransitiveDigest": "ep2OrXzFai22oPOQwhS3aeTWxT9Jn6Us7ws4lRa4bU8=", - "usagesDigest": "78aLbl2cYObLkrJFomb3ZkfFUiUFbqzqZK8lnW+Y7Uk=", + "bzlTransitiveDigest": "gdpz377/gr/oSZxJsWmqNfdy1fiSkrvL/11Umvw987c=", + "usagesDigest": "1PlExi+b77pSr2tAxFCVbpCtFoA7oixHabaL3dmas4Y=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -739,9 +739,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "14086c6c0844122d4066a5e3a846b963259648945d7fb6c51b520f2105edd597", + "sha256": "155fe3738dc90b9723752974eb93a0500de631fe5de0732be1a79d00ff565962", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chrome-headless-shell-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chrome-headless-shell-linux64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-linux64/chrome-headless-shell" @@ -758,9 +758,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "fa2ff20c870e289511cdde481d069f167e403d289b91b1d9d063dd7b2f77ed6e", + "sha256": "16882cc7cb5b86d491ecd9669c9d9a3b2c591f9ac031774476cf4f99c254b579", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chrome-headless-shell-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chrome-headless-shell-mac-x64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-x64/chrome-headless-shell" @@ -777,9 +777,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "cbb938bd24ed648280e3654592c46f7eb8e2e184ca331f2138816bd59fcaed32", + "sha256": "ad608b5afff4dec60778ed83fab4f0d6b8563ab7ac94b3b48b1e0cebabec392e", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chrome-headless-shell-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-arm64/chrome-headless-shell-mac-arm64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-arm64/chrome-headless-shell" @@ -796,9 +796,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "68bf73ab78647e697bf7b81e8329f23c1331d8792af6e2ab66553aeb9ede9cd3", + "sha256": "f3d396ad4b6244feee263a6b39d8e8b32f1d568db74a333c2e7679e0fcd7ab09", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chrome-headless-shell-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/win64/chrome-headless-shell-win64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-win64/chrome-headless-shell.exe" @@ -815,9 +815,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "ec29104132a6ff1ae5f2ffe7b27b7ff675a58ab9b1ef616badcbdd35577b31b3", + "sha256": "da19a48eca2e7a09d757003eda2e814c8b7a9db462301faccc24564e5e593eca", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chromedriver-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chromedriver-linux64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-linux64/chromedriver" @@ -832,9 +832,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "2b9787f5f758c9f3e3888ac23270f8de47b168679718a4440bd1cea2b3cc57e9", + "sha256": "156dc49c7f1707c72b670182d63fc2e6414734950221ba5c2fc133f580ed3713", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chromedriver-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chromedriver-mac-x64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-x64/chromedriver" @@ -849,9 +849,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "6da850508d250c00c10b09dcac00c97a58d51346047972c2c47d3e3b850d4662", + "sha256": "83cd191d57d4d841a761b2bbd42d29d5df6b748c510ad474e3d0a17ca46929ae", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chromedriver-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-arm64/chromedriver-mac-arm64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver" @@ -866,9 +866,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "d4af3e6c8f3a7ceb50ff298e43ff07efcad46c1d6ceb0d894eeb2d593db7e522", + "sha256": "8b1cad695e78e1a68055680f411eb65c5d305d2d3dadc1b60fdaf73ea373fc22", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chromedriver-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/win64/chromedriver-win64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-win64/chromedriver.exe" @@ -883,9 +883,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "6fcc1a2f95a6b232af82b4b7644566638c5df349e3095c65b7c18d1a63412d3d", + "sha256": "1c87a9de21941a15177384d4820a6aa3c7dacb38d34089c73a621734ebf1ea9a", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/135.0/linux-x86_64/en-US/firefox-135.0.tar.xz" + "https://archive.mozilla.org/pub/firefox/releases/143.0/linux-x86_64/en-US/firefox-143.0.tar.xz" ], "named_files": { "FIREFOX": "firefox/firefox" @@ -900,9 +900,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9", + "sha256": "a5c570e277021b61df1295efe77446617ebd768d8ad36a20b309aa382685f6f2", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg" + "https://archive.mozilla.org/pub/firefox/releases/143.0/mac/en-US/Firefox%20143.0.dmg" ], "named_files": { "FIREFOX": "Firefox.app/Contents/MacOS/firefox" @@ -917,9 +917,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9", + "sha256": "a5c570e277021b61df1295efe77446617ebd768d8ad36a20b309aa382685f6f2", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg" + "https://archive.mozilla.org/pub/firefox/releases/143.0/mac/en-US/Firefox%20143.0.dmg" ], "named_files": { "FIREFOX": "Firefox.app/Contents/MacOS/firefox" @@ -934,9 +934,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "f46d3cb68caa4d4366b942c225d256e0fc15a189263cd9efe29eff0dbfe02685", + "sha256": "fbbadc9a6881aa90d266b572304a75e8814b91817a1db7fc01015d667f60318d", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/135.0/win64/en-US/Firefox%20Setup%20135.0.exe" + "https://archive.mozilla.org/pub/firefox/releases/143.0/win64/en-US/Firefox%20Setup%20143.0.exe" ], "named_files": { "FIREFOX": "core/firefox.exe" @@ -1137,7 +1137,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "FmfMiNXAxRoLWw3NloQbssosE1egrSvzirbQnso7j7E=", - "usagesDigest": "dQPwfMGn82Q5590JUruHiQBsYUxIunUFb+wBb/czUI4=", + "usagesDigest": "2LQPThd5tV1PolM/G9ODu23//lwYi98BOd3V2h9W7xM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 736e5ee8a8f35c798d824e99e642a0d99d35ce90 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 8 Oct 2025 05:06:16 +0000 Subject: [PATCH 161/228] build: update pnpm to v10.18.1 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c0d95b994f06..fac716866142 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.18.0", + "packageManager": "pnpm@10.18.1", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.18.0" + "pnpm": "10.18.1" }, "author": "Angular Authors", "license": "MIT", From ec3d5bc83825fd6d5fdc73eaae45799be30e958b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 8 Oct 2025 07:05:40 +0000 Subject: [PATCH 162/228] build: update github/codeql-action action to v3.30.7 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a89471cde604..1ae49daf362a 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@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 + uses: github/codeql-action/init@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 + uses: github/codeql-action/analyze@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d94a349e2d0a..eb947a19e324 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@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6 + uses: github/codeql-action/upload-sarif@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 with: sarif_file: results.sarif From 20b5250a4c96150ef3cf92fcf7e405a583687c2c Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 7 Oct 2025 16:06:26 +0000 Subject: [PATCH 163/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- MODULE.bazel.lock | 16 +- package.json | 2 +- pnpm-lock.yaml | 378 +++++++++--------- 10 files changed, 244 insertions(+), 264 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index ef4948019bf7..ca375413eae5 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/branch-manager@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 157b898c3d7e..5e4f0b2c8c22 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 627102fcebaa..8dea45d54047 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/pull-request-labeling@18fece68983a6e0ecaed2456ffc4035d493688f3 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/post-approval-changes@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 15697e3c56f3..e5ad7cd437b4 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/feature-request@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index e3bad8d581ed..83eb0db9367b 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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 0dcc37255182..c723fb1f02de 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/linting/licenses@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - 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@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 795429d992ea..425c8f732bb3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "b7672ff60456719e6d9b0cc052abc73a7adc8df2", + commit = "18fece68983a6e0ecaed2456ffc4035d493688f3", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3c22285d137f..322fcc9302c6 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -186,8 +186,8 @@ "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", - "https://bcr.bazel.build/modules/tar.bzl/0.5.6/MODULE.bazel": "c5b8bfa6bc7b640883d41bfec4a200fb45c16a2a7b2fb081323f499197cfcc09", - "https://bcr.bazel.build/modules/tar.bzl/0.5.6/source.json": "848b3a4eaf2bb4a09ab78533c348e19a6723c7d5f820eb1dceb0eeb5e5914ac1", + "https://bcr.bazel.build/modules/tar.bzl/0.6.0/MODULE.bazel": "a3584b4edcfafcabd9b0ef9819808f05b372957bbdff41601429d5fd0aac2e7c", + "https://bcr.bazel.build/modules/tar.bzl/0.6.0/source.json": "4a620381df075a16cb3a7ed57bd1d05f7480222394c64a20fa51bdb636fda658", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", @@ -231,7 +231,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "NeP8heP5Z49UtK5ZkdaSGN2wdf2vyTLxJfpSPeyvV24=", + "bzlTransitiveDigest": "kzZXVf0lIRQArtJstiytwibC6m5npERsjNfhP9yJJW4=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -411,8 +411,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "eebwHza1XBCmrNmoTUnW56khfYFfcwZpPWjM1Nvu3sk=", - "usagesDigest": "VyrLigWAm5f/dVn2m+/sJ67RLQ5koXcopcxYdLdxXwk=", + "bzlTransitiveDigest": "KMsyoH5ShknUHVmkSHztDMIN0fXSzKZBut4ETq2s/Sw=", + "usagesDigest": "IhWFaS3+adcZAFZpJlR1wPWkibqbPczXdu8nnyFjNyw=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -549,7 +549,7 @@ "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", - "usagesDigest": "AOonxlxnGEBOvI7SdKSZSHqZGrbcZpC2lCKog8pQLL0=", + "usagesDigest": "vNdALbl5RQ8e4TPH//CrbPr2vcT5/a14Fh9Vio+/eUk=", "recordedFileInputs": { "@@rules_browsers~//package.json": "d5e7a05131b6ebf4c09d49afe82c3018182415b3a9c53000a32a7032f491d2c4" }, @@ -582,8 +582,8 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "version": "5.9.2", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] diff --git a/package.json b/package.json index fac716866142..5fe2eaa967e1 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.3", "@angular/localize": "20.3.3", "@angular/material": "20.2.7", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb", "@angular/platform-browser": "20.3.3", "@angular/platform-server": "20.3.3", "@angular/router": "20.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36a33d335255..956f15ea6684 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.7 version: 20.2.7(9c11a8eb564a221c173ca8f1e04d1698) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.3 version: 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.5.2) + version: 5.1.14(@types/node@24.7.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.5.2) + version: 7.8.2(@types/node@24.7.0) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.2))(@types/node@24.5.2)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.0))(@types/node@24.7.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.5.2) + version: 7.8.2(@types/node@24.7.0) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb} - version: 0.0.0-b7672ff60456719e6d9b0cc052abc73a7adc8df2 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb} + version: 0.0.0-18fece68983a6e0ecaed2456ffc4035d493688f3 hasBin: true '@angular/platform-browser@20.3.3': @@ -2113,8 +2113,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.21.0': - resolution: {integrity: sha512-k47DECR8BF9z7IJxQd3reKuH2eUnOH5NlJWSe+CKM6nbXx+wH3hmtWQxUQR9M8gzWW1EvFuRVgjQssEIreNZsw==} + '@google/genai@1.22.0': + resolution: {integrity: sha512-siETS3zTm3EGpTT4+BFc1z20xXBYfueD3gCYfxkOjuAKRk8lt8TJevDHi3zepn1oSI6NhG/LZvy0i+Q3qheObg==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -2634,8 +2634,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@octokit/auth-app@8.1.0': - resolution: {integrity: sha512-6bWhyvLXqCSfHiqlwzn9pScLZ+Qnvh/681GR/UEEPCMIVwfpRDBw0cCzy3/t2Dq8B7W2X/8pBgmw6MOiyE0DXQ==} + '@octokit/auth-app@8.1.1': + resolution: {integrity: sha512-yW9YUy1cuqWlz8u7908ed498wJFt42VYsYWjvepjojM4BdZSp4t+5JehFds7LfvYi550O/GaUI94rgbhswvxfA==} engines: {node: '>= 20'} '@octokit/auth-oauth-app@9.0.2': @@ -2654,8 +2654,8 @@ packages: resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/core@7.0.4': - resolution: {integrity: sha512-jOT8V1Ba5BdC79sKrRWDdMT5l1R+XNHTPR6CPWzUP2EcfAcvIHZWF0eAbmRcpOOP5gVIwnqNg0C4nvh6Abc3OA==} + '@octokit/core@7.0.5': + resolution: {integrity: sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==} engines: {node: '>= 20'} '@octokit/endpoint@11.0.1': @@ -2665,8 +2665,8 @@ packages: '@octokit/graphql-schema@15.26.0': resolution: {integrity: sha512-SoVbh+sXe9nsoweFbLT3tAk3XWYbYLs5ku05wij1zhyQ2U3lewdrhjo5Tb7lfaOGWNHSkPZT4uuPZp8neF7P7A==} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + '@octokit/graphql@9.0.2': + resolution: {integrity: sha512-iz6KzZ7u95Fzy9Nt2L8cG88lGRMr/qy1Q36ih/XVzMIlPDMYwaNLE/ENhqmIzgPrlNWiYJkwmveEetvxAgFBJw==} engines: {node: '>= 20'} '@octokit/oauth-authorization-url@8.0.0': @@ -2677,14 +2677,11 @@ packages: resolution: {integrity: sha512-xi6Iut3izMCFzXBJtxxJehxJmAKjE8iwj6L5+raPRwlTNKAbOOBJX7/Z8AF5apD4aXvc2skwIdOnC+CQ4QuA8Q==} engines: {node: '>= 20'} - '@octokit/openapi-types@25.1.0': - resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} - '@octokit/openapi-types@26.0.0': resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} - '@octokit/plugin-paginate-rest@13.1.1': - resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} + '@octokit/plugin-paginate-rest@13.2.0': + resolution: {integrity: sha512-YuAlyjR8o5QoRSOvMHxSJzPtogkNMgeMv2mpccrvdUGeC3MKyfi/hS+KiFwyH/iRKIKyx+eIMsDjbt3p9r2GYA==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2701,10 +2698,6 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/request-error@7.0.0': - resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} - engines: {node: '>= 20'} - '@octokit/request-error@7.0.1': resolution: {integrity: sha512-CZpFwV4+1uBrxu7Cw8E5NCXDWFNf18MSY23TdxCBgjw1tXXHvTrZVsXlW8hgFTOLw8RQR1BBrMvYRtuyaijHMA==} engines: {node: '>= 20'} @@ -2717,9 +2710,6 @@ packages: resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} engines: {node: '>= 20'} - '@octokit/types@14.1.0': - resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@octokit/types@15.0.0': resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} @@ -2844,20 +2834,20 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pnpm/crypto.hash@1000.2.0': - resolution: {integrity: sha512-L22sQHDC4VM9cPSbOFi0e+C7JSt3isl/biV1jShz8MG9QjemiwTUMog4h0k0C5HoB1ycUjGkXTqAE4RJu3jLQA==} + '@pnpm/crypto.hash@1000.2.1': + resolution: {integrity: sha512-Kgo3bgYbdKkC5xFvvQshbHa+Nru7k50D91+yyq7enp4Ur2EMp4wg5oXleaC5xu5hC9A/1eSCRI8npCioplxG4A==} engines: {node: '>=18.12'} '@pnpm/crypto.polyfill@1000.1.0': resolution: {integrity: sha512-tNe7a6U4rCpxLMBaR0SIYTdjxGdL0Vwb3G1zY8++sPtHSvy7qd54u8CIB0Z+Y6t5tc9pNYMYCMwhE/wdSY7ltg==} engines: {node: '>=18.12'} - '@pnpm/dependency-path@1001.1.1': - resolution: {integrity: sha512-kUQeP42kxGSEyqhAZGzMs3UQGDiY8Xk3/718uIKqhtHUCSoCas/p3xRRiEXKs7Wesp0Eb1X0I5xrugZbPiK1dw==} + '@pnpm/dependency-path@1001.1.2': + resolution: {integrity: sha512-fih99/lY+HRRak0U0KMKAO7+nacilWMcvFTH6YDKzjCBTOhxDr6Eeap2mF7uf4ED4dnKsQVNUGmFpvaSXSuFCQ==} engines: {node: '>=18.12'} - '@pnpm/graceful-fs@1000.0.0': - resolution: {integrity: sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==} + '@pnpm/graceful-fs@1000.0.1': + resolution: {integrity: sha512-JnzaAVFJIEgwTcB55eww8N3h5B6qJdZqDA2wYkSK+OcTvvMSQb9c2STMhBP6GfkWygG1fs3w8D7JRx9SPZnxJg==} engines: {node: '>=18.12'} '@pnpm/types@1000.8.0': @@ -3436,8 +3426,8 @@ packages: '@types/node@22.18.8': resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} - '@types/node@24.5.2': - resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} + '@types/node@24.7.0': + resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -6228,8 +6218,8 @@ packages: jasmine-core@4.6.1: resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} - jasmine-core@5.11.0: - resolution: {integrity: sha512-MPJ8L5yyNul0F2SuEsLASwESXQjJvBXnKu31JWFyRZSvuv2B79K4GDWN3pSqvLheUNh7Fyb6dXwd4rsz95O2Kg==} + jasmine-core@5.12.0: + resolution: {integrity: sha512-QqO4pX33GEML5JoGQU6BM5NHKPgEsg+TXp3jCIDek9MbfEp2JUYEFBo9EF1+hegWy/bCHS1m5nP0BOp18G6rVA==} jasmine-core@5.9.0: resolution: {integrity: sha512-OMUvF1iI6+gSRYOhMrH4QYothVLN9C3EJ6wm4g7zLJlnaTl8zbaPOr0bTw70l7QxkoM7sVFOWo83u9B2Fe2Zng==} @@ -6244,8 +6234,8 @@ packages: resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} hasBin: true - jasmine@5.11.0: - resolution: {integrity: sha512-MhIYY2pLfRA5hhIvY72ZLilwKeZEBuTyIUv9JDB+b+pEYehsJDW2obKF2dmMtWaFG6pDiFiAUNphpZ7SW7fFMA==} + jasmine@5.12.0: + resolution: {integrity: sha512-KmKeTNuH8rgAuPRL5AUsXWSdJVlDu+pgqi2dLXoZUSH/g3kR+7Ho8B7hEhwDu0fu1PLuiXZtfaxmQ/mB5wqihw==} hasBin: true jasmine@5.9.0: @@ -8515,8 +8505,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.12.0: - resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} + undici-types@7.14.0: + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -9262,31 +9252,31 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.21.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.6(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) - '@octokit/auth-app': 8.1.0 - '@octokit/core': 7.0.4 - '@octokit/graphql': 9.0.1 + '@google/genai': 1.22.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.6(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@octokit/auth-app': 8.1.1 + '@octokit/core': 7.0.5 + '@octokit/graphql': 9.0.2 '@octokit/graphql-schema': 15.26.0 '@octokit/openapi-types': 26.0.0 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) - '@octokit/request-error': 7.0.0 + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) + '@octokit/request-error': 7.0.1 '@octokit/rest': 22.0.0 '@octokit/types': 15.0.0 - '@pnpm/dependency-path': 1001.1.1 + '@pnpm/dependency-path': 1001.1.2 '@types/cli-progress': 3.11.6 '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -9303,8 +9293,8 @@ snapshots: firebase: 12.3.0 folder-hash: 4.1.1(supports-color@10.2.2) git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) - jasmine: 5.11.0 - jasmine-core: 5.11.0 + jasmine: 5.12.0 + jasmine-core: 5.12.0 jasmine-reporters: 2.5.2 jsonc-parser: 3.3.1 minimatch: 10.0.3 @@ -10601,7 +10591,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.21.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.22.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -10652,150 +10642,150 @@ snapshots: '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.2.4(@types/node@24.5.2)': + '@inquirer/checkbox@4.2.4(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/confirm@5.1.14(@types/node@24.5.2)': + '@inquirer/confirm@5.1.14(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/confirm@5.1.18(@types/node@24.5.2)': + '@inquirer/confirm@5.1.18(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/core@10.2.2(@types/node@24.5.2)': + '@inquirer/core@10.2.2(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/editor@4.2.20(@types/node@24.5.2)': + '@inquirer/editor@4.2.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/external-editor': 1.0.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/external-editor': 1.0.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/expand@4.0.20(@types/node@24.5.2)': + '@inquirer/expand@4.0.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/external-editor@1.0.2(@types/node@24.5.2)': + '@inquirer/external-editor@1.0.2(@types/node@24.7.0)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.4(@types/node@24.5.2)': + '@inquirer/input@4.2.4(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/number@3.0.20(@types/node@24.5.2)': + '@inquirer/number@3.0.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/password@4.0.20(@types/node@24.5.2)': + '@inquirer/password@4.0.20(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 - - '@inquirer/prompts@7.8.2(@types/node@24.5.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) - '@inquirer/confirm': 5.1.14(@types/node@24.5.2) - '@inquirer/editor': 4.2.20(@types/node@24.5.2) - '@inquirer/expand': 4.0.20(@types/node@24.5.2) - '@inquirer/input': 4.2.4(@types/node@24.5.2) - '@inquirer/number': 3.0.20(@types/node@24.5.2) - '@inquirer/password': 4.0.20(@types/node@24.5.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) - '@inquirer/search': 3.1.3(@types/node@24.5.2) - '@inquirer/select': 4.3.4(@types/node@24.5.2) + '@types/node': 24.7.0 + + '@inquirer/prompts@7.8.2(@types/node@24.7.0)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.7.0) + '@inquirer/confirm': 5.1.14(@types/node@24.7.0) + '@inquirer/editor': 4.2.20(@types/node@24.7.0) + '@inquirer/expand': 4.0.20(@types/node@24.7.0) + '@inquirer/input': 4.2.4(@types/node@24.7.0) + '@inquirer/number': 3.0.20(@types/node@24.7.0) + '@inquirer/password': 4.0.20(@types/node@24.7.0) + '@inquirer/rawlist': 4.1.8(@types/node@24.7.0) + '@inquirer/search': 3.1.3(@types/node@24.7.0) + '@inquirer/select': 4.3.4(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 - - '@inquirer/prompts@7.8.6(@types/node@24.5.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) - '@inquirer/confirm': 5.1.18(@types/node@24.5.2) - '@inquirer/editor': 4.2.20(@types/node@24.5.2) - '@inquirer/expand': 4.0.20(@types/node@24.5.2) - '@inquirer/input': 4.2.4(@types/node@24.5.2) - '@inquirer/number': 3.0.20(@types/node@24.5.2) - '@inquirer/password': 4.0.20(@types/node@24.5.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) - '@inquirer/search': 3.1.3(@types/node@24.5.2) - '@inquirer/select': 4.3.4(@types/node@24.5.2) + '@types/node': 24.7.0 + + '@inquirer/prompts@7.8.6(@types/node@24.7.0)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.7.0) + '@inquirer/confirm': 5.1.18(@types/node@24.7.0) + '@inquirer/editor': 4.2.20(@types/node@24.7.0) + '@inquirer/expand': 4.0.20(@types/node@24.7.0) + '@inquirer/input': 4.2.4(@types/node@24.7.0) + '@inquirer/number': 3.0.20(@types/node@24.7.0) + '@inquirer/password': 4.0.20(@types/node@24.7.0) + '@inquirer/rawlist': 4.1.8(@types/node@24.7.0) + '@inquirer/search': 3.1.3(@types/node@24.7.0) + '@inquirer/select': 4.3.4(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/rawlist@4.1.8(@types/node@24.5.2)': + '@inquirer/rawlist@4.1.8(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/search@3.1.3(@types/node@24.5.2)': + '@inquirer/search@3.1.3(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/select@4.3.4(@types/node@24.5.2)': + '@inquirer/select@4.3.4(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/type@3.0.8(@types/node@24.5.2)': + '@inquirer/type@3.0.8(@types/node@24.7.0)': optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@isaacs/balanced-match@4.0.1': {} @@ -10881,10 +10871,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.2))(@types/node@24.5.2)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.0))(@types/node@24.7.0)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/prompts': 7.8.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11097,13 +11087,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@octokit/auth-app@8.1.0': + '@octokit/auth-app@8.1.1': dependencies: '@octokit/auth-oauth-app': 9.0.2 '@octokit/auth-oauth-user': 6.0.1 '@octokit/request': 10.0.5 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.2 universal-user-agent: 7.0.3 @@ -11133,12 +11123,12 @@ snapshots: '@octokit/auth-token@6.0.0': {} - '@octokit/core@7.0.4': + '@octokit/core@7.0.5': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 + '@octokit/graphql': 9.0.2 '@octokit/request': 10.0.5 - '@octokit/request-error': 7.0.0 + '@octokit/request-error': 7.0.1 '@octokit/types': 15.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 @@ -11153,10 +11143,10 @@ snapshots: graphql: 16.11.0 graphql-tag: 2.12.6(graphql@16.11.0) - '@octokit/graphql@9.0.1': + '@octokit/graphql@9.0.2': dependencies: '@octokit/request': 10.0.5 - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/oauth-authorization-url@8.0.0': {} @@ -11168,28 +11158,22 @@ snapshots: '@octokit/request-error': 7.0.1 '@octokit/types': 15.0.0 - '@octokit/openapi-types@25.1.0': {} - '@octokit/openapi-types@26.0.0': {} - '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.4)': + '@octokit/plugin-paginate-rest@13.2.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/types': 15.0.0 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.4)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 + '@octokit/core': 7.0.5 - '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.4)': + '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 + '@octokit/core': 7.0.5 '@octokit/types': 15.0.0 - '@octokit/request-error@7.0.0': - dependencies: - '@octokit/types': 14.1.0 - '@octokit/request-error@7.0.1': dependencies: '@octokit/types': 15.0.0 @@ -11204,14 +11188,10 @@ snapshots: '@octokit/rest@22.0.0': dependencies: - '@octokit/core': 7.0.4 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.4) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) - - '@octokit/types@14.1.0': - dependencies: - '@octokit/openapi-types': 25.1.0 + '@octokit/core': 7.0.5 + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) '@octokit/types@15.0.0': dependencies: @@ -11303,21 +11283,21 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pnpm/crypto.hash@1000.2.0': + '@pnpm/crypto.hash@1000.2.1': dependencies: '@pnpm/crypto.polyfill': 1000.1.0 - '@pnpm/graceful-fs': 1000.0.0 + '@pnpm/graceful-fs': 1000.0.1 ssri: 10.0.5 '@pnpm/crypto.polyfill@1000.1.0': {} - '@pnpm/dependency-path@1001.1.1': + '@pnpm/dependency-path@1001.1.2': dependencies: - '@pnpm/crypto.hash': 1000.2.0 + '@pnpm/crypto.hash': 1000.2.1 '@pnpm/types': 1000.8.0 semver: 7.7.2 - '@pnpm/graceful-fs@1000.0.0': + '@pnpm/graceful-fs@1000.0.1': dependencies: graceful-fs: 4.2.11 @@ -11856,9 +11836,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.5.2': + '@types/node@24.7.0': dependencies: - undici-types: 7.12.0 + undici-types: 7.14.0 '@types/npm-package-arg@6.1.4': {} @@ -12246,9 +12226,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12258,13 +12238,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14191,7 +14171,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15269,7 +15249,7 @@ snapshots: jasmine-core@4.6.1: {} - jasmine-core@5.11.0: {} + jasmine-core@5.12.0: {} jasmine-core@5.9.0: {} @@ -15288,10 +15268,10 @@ snapshots: glob: 7.2.3 jasmine-core: 2.8.0 - jasmine@5.11.0: + jasmine@5.12.0: dependencies: glob: 10.4.5 - jasmine-core: 5.11.0 + jasmine-core: 5.12.0 jasmine@5.9.0: dependencies: @@ -17941,7 +17921,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.12.0: {} + undici-types@7.14.0: {} undici@5.29.0: dependencies: @@ -18116,13 +18096,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18137,7 +18117,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18146,7 +18126,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18155,11 +18135,11 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18177,11 +18157,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From af81cadd2bc92a3fed8fd2558e4784f75b65c687 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 8 Oct 2025 10:29:52 +0000 Subject: [PATCH 164/228] release: cut the v20.3.5 release --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a41fcd7977bc..829897343352 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ + + +# 20.3.5 (2025-10-08) + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------------------- | +| [7f7140680](https://github.com/angular/angular-cli/commit/7f7140680b75ff6b41f7f04349fe10cd928f1a23) | fix | cleanup karma temporary directory after process exit | + + + # 20.3.4 (2025-10-02) diff --git a/package.json b/package.json index 5fe2eaa967e1..e22bb60a6062 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.4", + "version": "20.3.5", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From a45ec06e7f418b1e7d0141ea282c9009f11bcac2 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 8 Oct 2025 15:06:34 +0000 Subject: [PATCH 165/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 278 +++++++++--------- 11 files changed, 217 insertions(+), 217 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index ca375413eae5..9c5ead78bc14 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + - uses: angular/dev-infra/github-actions/branch-manager@26b2c129c4e494126cc9c42d10a273a26e766244 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e4f0b2c8c22..3164b93052c6 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 8dea45d54047..26f765735b56 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + - uses: angular/dev-infra/github-actions/pull-request-labeling@26b2c129c4e494126cc9c42d10a273a26e766244 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + - uses: angular/dev-infra/github-actions/post-approval-changes@26b2c129c4e494126cc9c42d10a273a26e766244 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index e5ad7cd437b4..e2925cd2115c 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + - uses: angular/dev-infra/github-actions/feature-request@26b2c129c4e494126cc9c42d10a273a26e766244 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 83eb0db9367b..4ffb53694ad3 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - 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 c723fb1f02de..b948c3ab8c27 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/linting/licenses@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - 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@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 + uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 425c8f732bb3..974358e847b9 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "18fece68983a6e0ecaed2456ffc4035d493688f3", + commit = "26b2c129c4e494126cc9c42d10a273a26e766244", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index e22bb60a6062..89a124d110dd 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.3", - "@angular/cdk": "20.2.7", - "@angular/common": "20.3.3", - "@angular/compiler": "20.3.3", - "@angular/compiler-cli": "20.3.3", - "@angular/core": "20.3.3", - "@angular/forms": "20.3.3", - "@angular/localize": "20.3.3", - "@angular/material": "20.2.7", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb", - "@angular/platform-browser": "20.3.3", - "@angular/platform-server": "20.3.3", - "@angular/router": "20.3.3", - "@angular/service-worker": "20.3.3", + "@angular/animations": "20.3.4", + "@angular/cdk": "20.2.8", + "@angular/common": "20.3.4", + "@angular/compiler": "20.3.4", + "@angular/compiler-cli": "20.3.4", + "@angular/core": "20.3.4", + "@angular/forms": "20.3.4", + "@angular/localize": "20.3.4", + "@angular/material": "20.2.8", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#650ac6faed7c4d83a70a7d9418f30bd383c520cb", + "@angular/platform-browser": "20.3.4", + "@angular/platform-server": "20.3.4", + "@angular/router": "20.3.4", + "@angular/service-worker": "20.3.4", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 2e11a7495c36..b54eceb5059a 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.3.3", - "@angular/compiler": "20.3.3", - "@angular/core": "20.3.3", - "@angular/platform-browser": "20.3.3", - "@angular/platform-server": "20.3.3", - "@angular/router": "20.3.3", + "@angular/common": "20.3.4", + "@angular/compiler": "20.3.4", + "@angular/core": "20.3.4", + "@angular/platform-browser": "20.3.4", + "@angular/platform-server": "20.3.4", + "@angular/router": "20.3.4", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index edeeb32117b2..8b8b3da7e77d 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.3.3", - "@angular/compiler-cli": "20.3.3", + "@angular/compiler": "20.3.4", + "@angular/compiler-cli": "20.3.4", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 956f15ea6684..f14a16b0a71a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.3 - version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.4 + version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.7 - version: 20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.8 + version: 20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.3 - version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.3 - version: 20.3.3 + specifier: 20.3.4 + version: 20.3.4 '@angular/compiler-cli': - specifier: 20.3.3 - version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) + specifier: 20.3.4 + version: 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) '@angular/core': - specifier: 20.3.3 - version: 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.4 + version: 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.3 - version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.3 - version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) + specifier: 20.3.4 + version: 20.3.4(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(@angular/compiler@20.3.4) '@angular/material': - specifier: 20.2.7 - version: 20.2.7(9c11a8eb564a221c173ca8f1e04d1698) + specifier: 20.2.8 + version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#650ac6faed7c4d83a70a7d9418f30bd383c520cb + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.3 - version: 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.4 + version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.3 - version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.3 - version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.3 - version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(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.3.3 - version: 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.3 - version: 20.3.3 + specifier: 20.3.4 + version: 20.3.4 '@angular/core': - specifier: 20.3.3 - version: 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.4 + version: 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.3 - version: 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.4 + version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.3 - version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.3 - version: 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.4 + version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(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.3.3 - version: 20.3.3 + specifier: 20.3.4 + version: 20.3.4 '@angular/compiler-cli': - specifier: 20.3.3 - version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) + specifier: 20.3.4 + version: 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.3': - resolution: {integrity: sha512-nXpe1sAhMbQm4VTKhnP/zL2w5s2Kxjr9bZ7krOSTtyO9Wxjhd7oJN4mgCVRa80oEMheiDTmanPaMFLEN0pzang==} + '@angular/animations@20.3.4': + resolution: {integrity: sha512-b+vFsTtMYtOrcZZLXB4BxuErbrLlShFT6khTvkwu/pFK8ri3tasyJGkeKRZJHao5ZsWdZSqV2mRwzg7vphchnA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.3 + '@angular/core': 20.3.4 - '@angular/cdk@20.2.7': - resolution: {integrity: sha512-QTqxPJSMXyjaswtpUrziwdoKRhqT2P9/Ascwzjg8T/SofV1850pc3YmonoOFrurYrmd4plZzWdr7raGcBWIh/Q==} + '@angular/cdk@20.2.8': + resolution: {integrity: sha512-r2GzcgwkRETKUmFhGfmT+T0RYRcYb/JrpADTnUG3sOkHY+05r7YGkmmXMjUIB0nVERqVuFBM1mKVcIFp9SJDmQ==} 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.3.3': - resolution: {integrity: sha512-iArFCXvgYJCpxLZv8o6rV7Cxuqv1hbndoeUmQgL7ekXwVS6BA49VErXbTPM+pfhAJ+v1fc/DG3rzBwXk3eW2lw==} + '@angular/common@20.3.4': + resolution: {integrity: sha512-hBQahyiHEAtc30a8hPOuIWcUL7j8189DC0sX4RiBd/wtvzH4Sd3XhguxyZAL6gHgNZEQ0nKy0uAfvWB/79GChQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.3 + '@angular/core': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.3': - resolution: {integrity: sha512-kSIE6hkTiZGiJLyisp5Q6NXOHiDNOItp7N2HVNPrK1bqzM8foN6H6BE1a+LYO3Lwy3PkwQFzx03BnzxkM4sWng==} + '@angular/compiler-cli@20.3.4': + resolution: {integrity: sha512-FwEv+QM9tEMXDMd2V+j82VLOjJVUrI7ENz/LJa2p/YEGVJQkT3HVca5qJj+8I+7bfPEY/d46R/cmjjqMqUcYdg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.3 + '@angular/compiler': 20.3.4 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.3': - resolution: {integrity: sha512-7AUtF7PO8xo+jOgrhLRPXmt65M/KFuYIsVZGVLB1FTCUAPByFJEUYOSnUuHyvFQQqHesK4aYSP27slDpHH/PSA==} + '@angular/compiler@20.3.4': + resolution: {integrity: sha512-ISfEyn5ppWOP2hyZy0/IFEcQOaq5x1mXVZ2CRCxTpWyXYzavj27Ahr3+LQHPVV0uTNovlENyPAUnrzW+gLxXEw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.3': - resolution: {integrity: sha512-AWBCixxw4N9VgKT1uwrRPr1dH3CpT/ffcCsXJQ8TjzsKYjVBkXVht5OjtxJOWOQ2KaHwsGFEmDMv9fc1BHDFhQ==} + '@angular/core@20.3.4': + resolution: {integrity: sha512-qLYVXcpSBmsA/9fITB1cT2y37V1Yo3ybWEwvafnbAh8izabrMV0hh+J9Ajh9bPk092T7LS8Xt9eTu0OquBXkbw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.3 + '@angular/compiler': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,74 +1023,74 @@ packages: zone.js: optional: true - '@angular/forms@20.3.3': - resolution: {integrity: sha512-Rv3sO1vOAbw03IRK30CB45eucxZ1rI0Jyaa6QVmDlOzQ4bktkanbGxQtaxBdc9bKPBO1SVx27eTbStR7i3BNRg==} + '@angular/forms@20.3.4': + resolution: {integrity: sha512-gPbI2iIvVA2jhwjTg7e3j/JqCFIpRSPgzW/wi5q7LrGBm7XKHNzY5xlEVDNvdq+gC4HTius9GOIx9I0i8mjrEw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.3 - '@angular/core': 20.3.3 - '@angular/platform-browser': 20.3.3 + '@angular/common': 20.3.4 + '@angular/core': 20.3.4 + '@angular/platform-browser': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.3': - resolution: {integrity: sha512-myToeQiFPzOxXu5CBoQPnMPCpM4HtQh9m+tiL5RsMtZs5NrD3DX9QxzVJl2Y4nozpphfQejoI1t2fbS7yM5qAQ==} + '@angular/localize@20.3.4': + resolution: {integrity: sha512-OaHS0qOFdngKX4T4CEi7LYaISY8k2fPbPHoB+Q0MzqqmJpG+OEu8prOB4jMsZKTe5QpZey7opOJQ6nmL+Maa1Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.3 - '@angular/compiler-cli': 20.3.3 + '@angular/compiler': 20.3.4 + '@angular/compiler-cli': 20.3.4 - '@angular/material@20.2.7': - resolution: {integrity: sha512-VXsP5qkQQ3sCGkSHsgDku/OVlunGsqssOM057foOKJuajECsI3ZpGuLJ13nvLm9Z147UZOZfP463ixZIjd4XuQ==} + '@angular/material@20.2.8': + resolution: {integrity: sha512-JexykfKGTM+oepHZVVPRGCJOs1PWVzdvzonSJ3xuchkNeUZPbrGlWb+wZj84RgpjSGj4ktJ1artrVH/yvLPuhw==} peerDependencies: - '@angular/cdk': 20.2.7 + '@angular/cdk': 20.2.8 '@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/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb} - version: 0.0.0-18fece68983a6e0ecaed2456ffc4035d493688f3 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb} + version: 0.0.0-26b2c129c4e494126cc9c42d10a273a26e766244 hasBin: true - '@angular/platform-browser@20.3.3': - resolution: {integrity: sha512-RUWpg49GnXdINjomRFrE/SRioxEehYqUzDVskDWddNeNhV9Z21zeC6Ao2i5q8UKq0y/oq2ShX7XFLprxqLoLnQ==} + '@angular/platform-browser@20.3.4': + resolution: {integrity: sha512-8eoHC+vk7scb24qjlpsirkh1Q17uFyWdhl+u92XNjvimtZRY96oDZeFEDPoexPqtKUQcCOpEPbL8P/IbpBsqYQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.3 - '@angular/common': 20.3.3 - '@angular/core': 20.3.3 + '@angular/animations': 20.3.4 + '@angular/common': 20.3.4 + '@angular/core': 20.3.4 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.3': - resolution: {integrity: sha512-8tu+Un0snSTyb0kq4xWa6DCbyyZzVjCVyZ68uT2Q0inoKM/ja/1wfYQQwroT8Yw7wg2IExjaJ2e6Pk5R2de4ew==} + '@angular/platform-server@20.3.4': + resolution: {integrity: sha512-wXe2y0Z9sBlKGYblNTweFWUdzzIpO9VAWSfc3gSJcDWtiuBfec2Vu88aYR1rtA3uCdenMaHeG/BiHNfsvIzWQg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.3 - '@angular/compiler': 20.3.3 - '@angular/core': 20.3.3 - '@angular/platform-browser': 20.3.3 + '@angular/common': 20.3.4 + '@angular/compiler': 20.3.4 + '@angular/core': 20.3.4 + '@angular/platform-browser': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.3': - resolution: {integrity: sha512-IrO5GY/vmaWwNdfR51xswNnBSxeEuvQAUqK3H0UNxhZlIE9gUS6pbbSidGGrQOZK+i0nd/rDz7j+RV7h2NK9aA==} + '@angular/router@20.3.4': + resolution: {integrity: sha512-qMVurWXVplYeHBKOWtQFtD+MfwOc0i/VJaFPGdiM5mDlfhtsg3OHcZBbSTmQW02l/4YimF5Ee3+pac279p+g1A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.3 - '@angular/core': 20.3.3 - '@angular/platform-browser': 20.3.3 + '@angular/common': 20.3.4 + '@angular/core': 20.3.4 + '@angular/platform-browser': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.3': - resolution: {integrity: sha512-Md0jsR7qIe5w8QmjZ3jPcqT1bVbFNjJik0QC8c+YXbApdt9O658z7eqPjj+sSK0cr1I6+ppCRstIL68DKha8sg==} + '@angular/service-worker@20.3.4': + resolution: {integrity: sha512-+hdQkDMoqQhmmS1hhLeUsn9na7gOS4NxvCg7y7ROEquoS24FhnVFOp9GS2K6PaNHhGVzbrBwBopew9QVRKyMyQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.3 + '@angular/core': 20.3.4 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -9176,28 +9176,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.3 + '@angular/compiler': 20.3.4 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9211,30 +9211,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.3': + '@angular/compiler@20.3.4': dependencies: tslib: 2.8.1 - '@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.3 + '@angular/compiler': 20.3.4 zone.js: 0.15.1 - '@angular/forms@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3)': + '@angular/localize@20.3.4(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(@angular/compiler@20.3.4)': dependencies: - '@angular/compiler': 20.3.3 - '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) + '@angular/compiler': 20.3.4 + '@angular/compiler-cli': 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9242,17 +9242,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.7(9c11a8eb564a221c173ca8f1e04d1698)': + '@angular/material@20.2.8(77988740ae74fb4aaf3ed71e07feeca3)': dependencies: - '@angular/cdk': 20.2.7(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(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/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) @@ -9313,35 +9313,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.3)(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.3 - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.4 + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.3(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.3(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -15963,10 +15963,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.4 ajv: 8.17.1 From fa646c901d29cd0e97454c8c8c2166fa6657e99c Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 9 Oct 2025 10:39:44 +0000 Subject: [PATCH 166/228] build: update dependency bazel to v7.6.2 See associated pull request for more information. --- .bazelversion | 2 +- MODULE.bazel.lock | 38 ++++++-------------------------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/.bazelversion b/.bazelversion index e8be68404bcb..e81e85b81044 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.6.1 +7.6.2 diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 322fcc9302c6..837b6c1222cd 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -10,8 +10,8 @@ "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", - "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", - "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", + "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", @@ -42,6 +42,7 @@ "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", "https://bcr.bazel.build/modules/bazel_features/1.34.0/source.json": "dfa5c4b01110313153b484a735764d247fee5624bbab63d25289e43b151a657a", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", @@ -105,6 +106,7 @@ "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.11/MODULE.bazel": "9f249c5624a4788067b96b8b896be10c7e8b4375dc46f6d8e1e51100113e0992", "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", @@ -201,34 +203,6 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { - "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { - "general": { - "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=", - "usagesDigest": "+hz7IHWN6A1oVJJWNDB6yZRG+RYhF76wAYItpAeIUIg=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "local_config_apple_cc_toolchains": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", - "ruleClassName": "_apple_cc_autoconf_toolchains", - "attributes": {} - }, - "local_config_apple_cc": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", - "ruleClassName": "_apple_cc_autoconf", - "attributes": {} - } - }, - "recordedRepoMappingEntries": [ - [ - "apple_support~", - "bazel_tools", - "bazel_tools" - ] - ] - } - }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { "bzlTransitiveDigest": "kzZXVf0lIRQArtJstiytwibC6m5npERsjNfhP9yJJW4=", @@ -411,7 +385,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "KMsyoH5ShknUHVmkSHztDMIN0fXSzKZBut4ETq2s/Sw=", + "bzlTransitiveDigest": "2EzhmJcOK6eUPERbnFW8UdrwodSbUF5O4co1bHslj00=", "usagesDigest": "IhWFaS3+adcZAFZpJlR1wPWkibqbPczXdu8nnyFjNyw=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -2256,7 +2230,7 @@ }, "@@rules_python~//python/extensions:pip.bzl%pip": { "general": { - "bzlTransitiveDigest": "8USX8QvzWk9pjl0ion2dAqEqjB3yzkmi3d13o89Cchs=", + "bzlTransitiveDigest": "sQcIxpGBMBOMzUZK9ARAkAR7oUiEiGgKZhHLEf9Prfk=", "usagesDigest": "K3E4RGDnEgGXkrLOS8/ma4NTUiLvGkMrRIhPiFxv8u0=", "recordedFileInputs": { "@@rules_python~//tools/publish/requirements_linux.txt": "8175b4c8df50ae2f22d1706961884beeb54e7da27bd2447018314a175981997d", From daceb8cf7239f8cb90a06175179da332eee8cee5 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 9 Oct 2025 11:05:22 +0000 Subject: [PATCH 167/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 974358e847b9..60a54b67f410 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -40,14 +40,14 @@ git_override( bazel_dep(name = "rules_sass") git_override( module_name = "rules_sass", - commit = "4a54e0e4e75fc6456ff874e53fb4a78bdfeb44b9", + commit = "1184a80751a21af8348f308abc5b38a41f26850e", remote = "https://github.com/devversion/rules_sass.git", ) bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", - commit = "508168a93dcbadfd2504f8ce775e2c19ebfe7fad", + commit = "0e04a5443e783ef983c84314e311e68410dd82e1", remote = "https://github.com/devversion/rules_browsers.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 837b6c1222cd..3b641dc32d4e 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -525,7 +525,7 @@ "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", "usagesDigest": "vNdALbl5RQ8e4TPH//CrbPr2vcT5/a14Fh9Vio+/eUk=", "recordedFileInputs": { - "@@rules_browsers~//package.json": "d5e7a05131b6ebf4c09d49afe82c3018182415b3a9c53000a32a7032f491d2c4" + "@@rules_browsers~//package.json": "84dc1ba9b1c667a25894e97218bd8f247d54f24bb694efb397a881be3c06a4c5" }, "recordedDirentsInputs": {}, "envVariables": {}, @@ -703,7 +703,7 @@ }, "@@rules_browsers~//browsers:extensions.bzl%browsers": { "general": { - "bzlTransitiveDigest": "gdpz377/gr/oSZxJsWmqNfdy1fiSkrvL/11Umvw987c=", + "bzlTransitiveDigest": "wG3lfivSBp6/w6pp9XxmrFKs0j4BJ1G7oDv4DpFa62g=", "usagesDigest": "1PlExi+b77pSr2tAxFCVbpCtFoA7oixHabaL3dmas4Y=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -713,9 +713,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "155fe3738dc90b9723752974eb93a0500de631fe5de0732be1a79d00ff565962", + "sha256": "79a3a4d3a5f9efae04dbb7c2164393ff8fee5f352ec73e36900848c75f4f906f", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chrome-headless-shell-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/linux64/chrome-headless-shell-linux64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-linux64/chrome-headless-shell" @@ -732,9 +732,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "16882cc7cb5b86d491ecd9669c9d9a3b2c591f9ac031774476cf4f99c254b579", + "sha256": "cdba96e69a423adc1f2647f35643a10e33260b4dfcc233977f3724f28bffd8f2", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chrome-headless-shell-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-x64/chrome-headless-shell-mac-x64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-x64/chrome-headless-shell" @@ -751,9 +751,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "ad608b5afff4dec60778ed83fab4f0d6b8563ab7ac94b3b48b1e0cebabec392e", + "sha256": "56eb0c57958b50dc6c0de810ea9fcf1ff800baf2a4b14ae0fea536e633806098", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-arm64/chrome-headless-shell-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-arm64/chrome-headless-shell-mac-arm64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-arm64/chrome-headless-shell" @@ -770,9 +770,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "f3d396ad4b6244feee263a6b39d8e8b32f1d568db74a333c2e7679e0fcd7ab09", + "sha256": "506b23250323f3eb4cdfe298cfd599571e428f6f3a64e86818ee975f4e585b75", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/win64/chrome-headless-shell-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/win64/chrome-headless-shell-win64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-win64/chrome-headless-shell.exe" @@ -789,9 +789,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "da19a48eca2e7a09d757003eda2e814c8b7a9db462301faccc24564e5e593eca", + "sha256": "8bf018ed7c383dfd4a4a8f26702265e58b053e71583c4b7a6f8a3eaa6e9b9e6f", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chromedriver-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/linux64/chromedriver-linux64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-linux64/chromedriver" @@ -806,9 +806,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "156dc49c7f1707c72b670182d63fc2e6414734950221ba5c2fc133f580ed3713", + "sha256": "4eb9cc848823444374bf2d3d388eaa949cee92114a611ce850024bf6b91352d1", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chromedriver-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-x64/chromedriver-mac-x64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-x64/chromedriver" @@ -823,9 +823,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "83cd191d57d4d841a761b2bbd42d29d5df6b748c510ad474e3d0a17ca46929ae", + "sha256": "13f142a6c53f38d26552ee21a874e3d11497bf6fb580b79a6b6b4b042875bef6", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-arm64/chromedriver-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-arm64/chromedriver-mac-arm64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver" @@ -840,9 +840,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "8b1cad695e78e1a68055680f411eb65c5d305d2d3dadc1b60fdaf73ea373fc22", + "sha256": "65c25dfbe56801d342ae027f365194d0d5b31602ec94e644fe21b6edb876904a", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/win64/chromedriver-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/win64/chromedriver-win64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-win64/chromedriver.exe" From e46f66a2f338008da176d13478fff09062fa37c3 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 9 Oct 2025 11:05:40 +0000 Subject: [PATCH 168/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 21 +++++--- 9 files changed, 71 insertions(+), 64 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 9c5ead78bc14..bdfbf99221f0 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@26b2c129c4e494126cc9c42d10a273a26e766244 + - uses: angular/dev-infra/github-actions/branch-manager@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3164b93052c6..9ef5cd71c477 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 26f765735b56..a4e64b00aaf2 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@26b2c129c4e494126cc9c42d10a273a26e766244 + - uses: angular/dev-infra/github-actions/pull-request-labeling@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c 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@26b2c129c4e494126cc9c42d10a273a26e766244 + - uses: angular/dev-infra/github-actions/post-approval-changes@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index e2925cd2115c..1f1c6ccc84f2 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@26b2c129c4e494126cc9c42d10a273a26e766244 + - uses: angular/dev-infra/github-actions/feature-request@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 4ffb53694ad3..153ca2d22194 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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 b948c3ab8c27..69e2ae145ed0 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/linting/licenses@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - 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@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@26b2c129c4e494126cc9c42d10a273a26e766244 + uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 60a54b67f410..3bc3ec5082cb 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "26b2c129c4e494126cc9c42d10a273a26e766244", + commit = "56543b10ddb9941c76b4413cc24ec3fa7a43cf5c", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 89a124d110dd..4a9cf1ea74ac 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.4", "@angular/localize": "20.3.4", "@angular/material": "20.2.8", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#650ac6faed7c4d83a70a7d9418f30bd383c520cb", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e877c7e4fe14a67d425f5af705bf583fbbba9967", "@angular/platform-browser": "20.3.4", "@angular/platform-server": "20.3.4", "@angular/router": "20.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f14a16b0a71a..e4ee914a1b93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.8 version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#650ac6faed7c4d83a70a7d9418f30bd383c520cb - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e877c7e4fe14a67d425f5af705bf583fbbba9967 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.4 version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb} - version: 0.0.0-26b2c129c4e494126cc9c42d10a273a26e766244 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967} + version: 0.0.0-56543b10ddb9941c76b4413cc24ec3fa7a43cf5c hasBin: true '@angular/platform-browser@20.3.4': @@ -7848,6 +7848,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -9252,7 +9257,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/650ac6faed7c4d83a70a7d9418f30bd383c520cb(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) @@ -9300,7 +9305,7 @@ snapshots: minimatch: 10.0.3 multimatch: 7.0.0 nock: 14.0.10 - semver: 7.7.2 + semver: 7.7.3 supports-color: 10.2.2 tsx: 4.20.6 typed-graphqlify: 3.1.6 @@ -17101,6 +17106,8 @@ snapshots: semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.0: dependencies: debug: 2.6.9 From 914345663974901d58ca6dfd33475cf32198ee36 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sat, 11 Oct 2025 05:05:39 +0000 Subject: [PATCH 169/228] build: update pnpm to v10.18.2 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4a9cf1ea74ac..6f0c35cef0dd 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.18.1", + "packageManager": "pnpm@10.18.2", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.18.1" + "pnpm": "10.18.2" }, "author": "Angular Authors", "license": "MIT", From 5470fe8cc9673fb51aa7a75ab3e9c05eab6fc541 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 10 Oct 2025 05:05:26 +0000 Subject: [PATCH 170/228] build: update bazel dependencies See associated pull request for more information. --- MODULE.bazel | 4 ++-- MODULE.bazel.lock | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 3bc3ec5082cb..891a42b38724 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.3.1") bazel_dep(name = "rules_nodejs", version = "6.5.2") -bazel_dep(name = "aspect_rules_js", version = "2.6.0") +bazel_dep(name = "aspect_rules_js", version = "2.6.2") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") @@ -21,7 +21,7 @@ multiple_version_override( bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") bazel_dep(name = "bazel_skylib", version = "1.8.2") -bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") +bazel_dep(name = "aspect_rules_esbuild", version = "0.23.0") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "rules_angular") git_override( diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 3b641dc32d4e..88fd0fc19f9e 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -21,13 +21,15 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/MODULE.bazel": "499ce65b6126f344f9a630040b9db91b36b20c6d1436026120067d922c2d69bd", - "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/source.json": "84138a41a9e71655cb97d39fcb80f6e2ba7e754d5601fb14f5a7d14080dff409", + "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.23.0/MODULE.bazel": "9b437a9ec25a619304940434fa03b8d41248213eb7009da2c898f3d6a4075ef3", + "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.23.0/source.json": "7b4cac4e61bae4262e7f67f6bec0b200fcb9060044f12e84a3bc37e0be245de7", "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/MODULE.bazel": "071d1952527721bf8b180e1299def24edaece9d7466e31a311981640da82c6be", "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299", "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/MODULE.bazel": "5a6f8dbc5b170769453f1819d469fe54b0e4b86a0e82e13fde8e5a45438a1890", - "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/source.json": "e1e20b259d4f1b0a5d8b99d57b418c96f306e1c77f96e9ea1c9f1068a628b211", + "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/MODULE.bazel": "ed2a871f4ab8fbde0cab67c425745069d84ea64b64313fa1a2954017326511f5", + "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/source.json": "59933fb8ddabd9740a3c12ff5552f06f2b8d68c3633883c681c757bf227c3763", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", @@ -205,8 +207,8 @@ "moduleExtensions": { "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "kzZXVf0lIRQArtJstiytwibC6m5npERsjNfhP9yJJW4=", - "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", + "bzlTransitiveDigest": "W+cy7GU3S29h8PPWylmMlPB5Z16vuZzJX4k0jlXGFoc=", + "usagesDigest": "H070ZIHhSlR+Han009l+GdDSuT9AJssdyVHQ7xjstSo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -335,6 +337,11 @@ "aspect_rules_js", "aspect_rules_js~" ], + [ + "aspect_rules_esbuild~", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" + ], [ "aspect_rules_esbuild~", "bazel_skylib", @@ -385,8 +392,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "2EzhmJcOK6eUPERbnFW8UdrwodSbUF5O4co1bHslj00=", - "usagesDigest": "IhWFaS3+adcZAFZpJlR1wPWkibqbPczXdu8nnyFjNyw=", + "bzlTransitiveDigest": "kFo9dd9KDRPKtK0RkVyoouzNI0l+bqG8cEaw+4+ZnVw=", + "usagesDigest": "dwcGULhCgltHeTzlHJu5cjVHXt6WfLzA3yTc6cHWmPo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -598,7 +605,7 @@ "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", - "usagesDigest": "3AICyjhN/vrKBxRCE7X7mX6C5gCzpm/lgEYspsAZZoE=", + "usagesDigest": "uS24fACgJK/VGwdRorIVcVBYji/Ibx5tHzgIFCn5iZQ=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -608,8 +615,9 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.6.0", + "aspect_rules_js": "2.6.2", "aspect_rules_ts": "3.7.0", + "aspect_rules_esbuild": "0.23.0", "aspect_tools_telemetry": "0.2.8" } } @@ -1111,7 +1119,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "FmfMiNXAxRoLWw3NloQbssosE1egrSvzirbQnso7j7E=", - "usagesDigest": "2LQPThd5tV1PolM/G9ODu23//lwYi98BOd3V2h9W7xM=", + "usagesDigest": "1kpLfNSteilN9lIcsMk1OY9Ob+GrTMGxU495OOEa2cA=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From 587f9f0aaf8c03e2e39c613f54a074cf05790a6b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 13 Oct 2025 07:06:37 +0000 Subject: [PATCH 171/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 313 ++++++++++++++++++++++++++----------------------- 1 file changed, 165 insertions(+), 148 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4ee914a1b93..3353e9287e81 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,7 +129,7 @@ importers: version: 4.17.20 '@types/node': specifier: ^22.12.0 - version: 22.18.8 + version: 22.18.10 '@types/npm-package-arg': specifier: ^6.1.0 version: 6.1.4 @@ -258,7 +258,7 @@ importers: version: 0.30.17 npm: specifier: ^11.0.0 - version: 11.6.1 + version: 11.6.2 prettier: specifier: ^3.0.0 version: 3.6.2 @@ -282,7 +282,7 @@ importers: version: 6.2.1(rollup@4.46.2)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.18.8)(rollup@4.46.2) + version: 0.5.3(@types/node@22.18.10)(rollup@4.46.2) semver: specifier: 7.7.2 version: 7.7.2 @@ -297,7 +297,7 @@ importers: version: 7.5.1 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.18.8)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.10)(typescript@5.9.2) tslib: specifier: 2.8.1 version: 2.8.1 @@ -2359,8 +2359,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/buffers@1.0.0': - resolution: {integrity: sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q==} + '@jsonjoy.com/buffers@1.2.0': + resolution: {integrity: sha512-6RX+W5a+ZUY/c/7J5s5jK9UinLfJo5oWKh84fb4X0yK2q4WXEWUWZWuEMjvCb1YNUQhEAhUfr5scEGOH7jC4YQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -2371,8 +2371,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.14.0': - resolution: {integrity: sha512-LpWbYgVnKzphN5S6uss4M25jJ/9+m6q6UJoeN6zTkK4xAGhKsiBRPVeF7OYMWonn5repMQbE5vieRXcMUrKDKw==} + '@jsonjoy.com/json-pack@1.20.0': + resolution: {integrity: sha512-adcXFVorSQULtT4XDL0giRLr2EVGIcyWm6eQKZWTrRA4EEydGOY8QVQtL0PaITQpUyu+lOd/QOicw6vdy1v8QQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -2884,8 +2884,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.10': - resolution: {integrity: sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==} + '@puppeteer/browsers@2.10.11': + resolution: {integrity: sha512-kp3ORGce+oC3qUMJ+g5NH9W4Q7mMG7gV2I+alv0bCbfkZ36B2V/xKCg9uYavSgjmsElhwBneahWjJP7A6fuKLw==} engines: {node: '>=18'} hasBin: true @@ -3336,11 +3336,11 @@ packages: '@types/events@3.0.3': resolution: {integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + '@types/express-serve-static-core@4.19.7': + resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==} - '@types/express-serve-static-core@5.0.7': - resolution: {integrity: sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==} + '@types/express-serve-static-core@5.1.0': + resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} '@types/express@4.17.23': resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==} @@ -3423,8 +3423,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.8': - resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} + '@types/node@22.18.10': + resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} '@types/node@24.7.0': resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} @@ -3585,8 +3585,8 @@ packages: resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.45.0': - resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} + '@typescript-eslint/types@8.46.0': + resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.39.1': @@ -4125,11 +4125,16 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.7.0: - resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} + bare-events@2.8.0: + resolution: {integrity: sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true - bare-fs@4.4.5: - resolution: {integrity: sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==} + bare-fs@4.4.10: + resolution: {integrity: sha512-arqVF+xX/rJHwrONZaSPhlzleT2gXwVs9rsAe1p1mIVwWZI2A76/raio+KwwxfWMO8oV9Wo90EaUkS2QwVmy4w==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -4169,8 +4174,8 @@ packages: resolution: {integrity: sha512-yyFDnoo0M1qlZfWyxihEphjxleNIv1W603kwqMiBE9B6SPFgZbysvoqOpMZr/l0wmErkRbBTp4gOwljtGx/TdQ==} hasBin: true - baseline-browser-mapping@2.8.12: - resolution: {integrity: sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==} + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} hasBin: true basic-ftp@5.0.5: @@ -4330,8 +4335,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001747: - resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4584,8 +4589,8 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.45.1: - resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} + core-js-compat@3.46.0: + resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -4841,8 +4846,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.1.1: - resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} detect-node@2.1.0: @@ -4933,8 +4938,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.230: - resolution: {integrity: sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==} + electron-to-chromium@1.5.234: + resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -5233,8 +5238,8 @@ packages: resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} - exponential-backoff@3.1.2: - resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} express-rate-limit@5.5.1: resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} @@ -5519,8 +5524,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.12.0: + resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} @@ -5694,8 +5699,8 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} - hosted-git-info@9.0.0: - resolution: {integrity: sha512-gEf705MZLrDPkbbhi8PnoO4ZwYgKoNL+ISZ3AjZMht2r3N5tuTwncyDi6Fv2/qDnMmZxgs0yI8WDOyR8q3G+SQ==} + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} engines: {node: ^20.17.0 || >=22.9.0} hpack.js@2.1.6: @@ -6475,8 +6480,8 @@ packages: resolution: {integrity: sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==} hasBin: true - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} loader-utils@2.0.4: @@ -6614,8 +6619,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.48.1: - resolution: {integrity: sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==} + memfs@4.49.0: + resolution: {integrity: sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==} meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -6964,8 +6969,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm@11.6.1: - resolution: {integrity: sha512-7iDSHDoup6uMQJ37yWrhfqcbMhF0UEfGRap6Nv+aKQcrIJXlCi2cKbj75WBmiHlcwsQCy/U0zEwDZdAx6H/Vaw==} + npm@11.6.2: + resolution: {integrity: sha512-7iKzNfy8lWYs3zq4oFPa8EXZz5xt9gQNKJZau3B1ErLBb6bF7sBJ00x09485DOvRT2l5Gerbl3VlZNT57MxJVA==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: @@ -7011,7 +7016,6 @@ packages: - ms - node-gyp - nopt - - normalize-package-data - npm-audit-report - npm-install-checks - npm-package-arg @@ -7512,8 +7516,8 @@ packages: resolution: {integrity: sha512-MRtTAZfQTluz3U2oU/X2VqVWPcR1+94nbA2V6ZrSZRVEwLqZ8eclZ551qGFQD/vD2PYqHJwWOW/fpC721uznVw==} engines: {node: '>=14.1.0'} - puppeteer-core@24.23.0: - resolution: {integrity: sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==} + puppeteer-core@24.24.0: + resolution: {integrity: sha512-RR5AeQ6dIbSepDe9PTtfgK1fgD7TuA9qqyGxPbFCyGfvfkbR7MiqNYdE7AhbTaFIqG3hFBtWwbVKVZF8oEqj7Q==} engines: {node: '>=18'} puppeteer@18.2.1: @@ -8888,8 +8892,8 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wordwrapjs@5.1.0: - resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} + wordwrapjs@5.1.1: + resolution: {integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==} engines: {node: '>=12.17'} wrap-ansi@6.2.0: @@ -9991,7 +9995,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) - core-js-compat: 3.45.1 + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -10616,7 +10620,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@grpc/proto-loader@0.7.15': dependencies: @@ -10843,7 +10847,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/buffers@1.0.0(tslib@2.8.1)': + '@jsonjoy.com/buffers@1.2.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -10851,10 +10855,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.14.0(tslib@2.8.1)': + '@jsonjoy.com/json-pack@1.20.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.2.0(tslib@2.8.1) '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) @@ -10870,7 +10874,7 @@ snapshots: '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.2.0(tslib@2.8.1) '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) tslib: 2.8.1 @@ -11331,7 +11335,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.10': + '@puppeteer/browsers@2.10.11': dependencies: debug: 4.4.3(supports-color@10.2.2) extract-zip: 2.0.1 @@ -11341,6 +11345,7 @@ snapshots: tar-fs: 3.1.1 yargs: 17.7.2 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - react-native-b4a - supports-color @@ -11588,7 +11593,7 @@ snapshots: '@stylistic/eslint-plugin@5.4.0(eslint@9.33.0(jiti@1.21.7))': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.33.0(jiti@1.21.7)) - '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/types': 8.46.0 eslint: 9.33.0(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -11616,7 +11621,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/babel__code-frame@7.0.6': {} @@ -11646,16 +11651,16 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/browser-sync@2.29.0': dependencies: '@types/micromatch': 2.3.35 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/serve-static': 1.15.9 chokidar: 3.6.0 @@ -11665,23 +11670,23 @@ snapshots: '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/qs': 6.14.0 '@types/command-line-args@5.2.3': {} '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.18.8 + '@types/express-serve-static-core': 4.19.7 + '@types/node': 22.18.10 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/content-disposition@0.5.9': {} @@ -11692,11 +11697,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/debounce@1.2.4': {} @@ -11704,7 +11709,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/ejs@3.1.5': {} @@ -11722,16 +11727,16 @@ snapshots: '@types/events@3.0.3': {} - '@types/express-serve-static-core@4.19.6': + '@types/express-serve-static-core@4.19.7': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.0 - '@types/express-serve-static-core@5.0.7': + '@types/express-serve-static-core@5.1.0': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.0 @@ -11739,25 +11744,25 @@ snapshots: '@types/express@4.17.23': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.6 + '@types/express-serve-static-core': 4.19.7 '@types/qs': 6.14.0 '@types/serve-static': 1.15.9 '@types/express@5.0.3': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.0.7 + '@types/express-serve-static-core': 5.1.0 '@types/serve-static': 1.15.9 '@types/folder-hash@4.0.4': {} '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/http-assert@1.5.6': {} @@ -11765,7 +11770,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/ini@4.1.1': {} @@ -11791,7 +11796,7 @@ snapshots: '@types/karma@6.3.9': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 log4js: 6.9.1 transitivePeerDependencies: - supports-color @@ -11811,13 +11816,13 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/less@3.0.8': {} '@types/loader-utils@2.0.6': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/webpack': 4.41.40 '@types/lodash@4.17.20': {} @@ -11830,14 +11835,14 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 - '@types/node@22.18.8': + '@types/node@22.18.10': dependencies: undici-types: 6.21.0 @@ -11849,7 +11854,7 @@ snapshots: '@types/npm-registry-fetch@8.0.8': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/node-fetch': 2.6.13 '@types/npm-package-arg': 6.1.4 '@types/npmlog': 7.0.0 @@ -11857,11 +11862,11 @@ snapshots: '@types/npmlog@7.0.0': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/pacote@11.1.8': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/npm-registry-fetch': 8.0.8 '@types/npmlog': 7.0.0 '@types/ssri': 7.1.5 @@ -11874,12 +11879,12 @@ snapshots: '@types/progress@2.0.7': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/q@0.0.32': {} @@ -11900,11 +11905,11 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/send@1.2.0': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/serve-index@1.9.4': dependencies: @@ -11913,23 +11918,23 @@ snapshots: '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/source-list-map@0.1.6': {} '@types/ssri@7.1.5': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/stack-trace@0.0.33': {} @@ -11942,17 +11947,17 @@ snapshots: '@types/watchpack@2.4.4': dependencies: '@types/graceful-fs': 4.1.9 - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -11963,11 +11968,11 @@ snapshots: '@types/ws@7.4.7': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 '@types/yargs-parser@21.0.3': {} @@ -11979,7 +11984,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 optional: true '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.33.0(jiti@1.21.7))(typescript@5.9.2)': @@ -12043,7 +12048,7 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/types@8.45.0': {} + '@typescript-eslint/types@8.46.0': {} '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: @@ -12211,6 +12216,7 @@ snapshots: gunzip-maybe: 1.4.2 tar-stream: 3.1.7 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a - supports-color @@ -12352,8 +12358,9 @@ snapshots: '@web/test-runner-core': 0.13.4(bufferutil@4.0.9) '@web/test-runner-coverage-v8': 0.8.0(bufferutil@4.0.9) chrome-launcher: 0.15.2 - puppeteer-core: 24.23.0(bufferutil@4.0.9) + puppeteer-core: 24.24.0(bufferutil@4.0.9) transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -12441,6 +12448,7 @@ snapshots: portfinder: 1.0.38 source-map: 0.7.6 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -12771,7 +12779,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.26.3 - caniuse-lite: 1.0.30001747 + caniuse-lite: 1.0.30001750 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12807,7 +12815,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) - core-js-compat: 3.45.1 + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color @@ -12820,16 +12828,17 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.7.0: {} + bare-events@2.8.0: {} - bare-fs@4.4.5: + bare-fs@4.4.10: dependencies: - bare-events: 2.7.0 + bare-events: 2.8.0 bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.7.0) + bare-stream: 2.7.0(bare-events@2.8.0) bare-url: 2.2.2 fast-fifo: 1.3.2 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a optional: true @@ -12841,12 +12850,13 @@ snapshots: bare-os: 3.6.2 optional: true - bare-stream@2.7.0(bare-events@2.7.0): + bare-stream@2.7.0(bare-events@2.8.0): dependencies: streamx: 2.23.0 optionalDependencies: - bare-events: 2.7.0 + bare-events: 2.8.0 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a optional: true @@ -12861,7 +12871,7 @@ snapshots: baseline-browser-mapping@2.6.3: {} - baseline-browser-mapping@2.8.12: {} + baseline-browser-mapping@2.8.16: {} basic-ftp@5.0.5: {} @@ -13019,9 +13029,9 @@ snapshots: browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.12 - caniuse-lite: 1.0.30001747 - electron-to-chromium: 1.5.230 + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001750 + electron-to-chromium: 1.5.234 node-releases: 2.0.23 update-browserslist-db: 1.1.3(browserslist@4.26.3) @@ -13104,7 +13114,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001747: {} + caniuse-lite@1.0.30001750: {} caseless@0.12.0: {} @@ -13171,7 +13181,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13379,7 +13389,7 @@ snapshots: tinyglobby: 0.2.14 webpack: 5.101.2(esbuild@0.25.9) - core-js-compat@3.45.1: + core-js-compat@3.46.0: dependencies: browserslist: 4.26.3 @@ -13596,7 +13606,7 @@ snapshots: detect-libc@1.0.3: optional: true - detect-libc@2.1.1: + detect-libc@2.1.2: optional: true detect-node@2.1.0: {} @@ -13695,7 +13705,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.230: {} + electron-to-chromium@1.5.234: {} emoji-regex@10.5.0: {} @@ -13734,7 +13744,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.18.8 + '@types/node': 22.18.10 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -14070,7 +14080,9 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.7.0 + bare-events: 2.8.0 + transitivePeerDependencies: + - bare-abort-controller events@3.3.0: {} @@ -14096,7 +14108,7 @@ snapshots: expect-type@1.2.2: {} - exponential-backoff@3.1.2: {} + exponential-backoff@3.1.3: {} express-rate-limit@5.5.1: {} @@ -14176,7 +14188,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14515,7 +14527,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.10.1: + get-tsconfig@4.12.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -14740,7 +14752,7 @@ snapshots: dependencies: lru-cache: 10.4.3 - hosted-git-info@9.0.0: + hosted-git-info@9.0.2: dependencies: lru-cache: 11.2.2 @@ -15287,7 +15299,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15631,7 +15643,7 @@ snapshots: '@lmdb/lmdb-win32-x64': 3.4.2 optional: true - loader-runner@4.3.0: {} + loader-runner@4.3.1: {} loader-utils@2.0.4: dependencies: @@ -15773,9 +15785,9 @@ snapshots: media-typer@1.1.0: {} - memfs@4.48.1: + memfs@4.49.0: dependencies: - '@jsonjoy.com/json-pack': 1.14.0(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.20.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.5.0(tslib@2.8.1) @@ -16035,7 +16047,7 @@ snapshots: node-gyp-build-optional-packages@5.2.2: dependencies: - detect-libc: 2.1.1 + detect-libc: 2.1.2 optional: true node-gyp-build@4.8.4: {} @@ -16043,7 +16055,7 @@ snapshots: node-gyp@11.4.2: dependencies: env-paths: 2.2.1 - exponential-backoff: 3.1.2 + exponential-backoff: 3.1.3 graceful-fs: 4.2.11 make-fetch-happen: 14.0.3 nopt: 8.1.0 @@ -16084,7 +16096,7 @@ snapshots: npm-package-arg@13.0.0: dependencies: - hosted-git-info: 9.0.0 + hosted-git-info: 9.0.2 proc-log: 5.0.0 semver: 7.7.2 validate-npm-package-name: 6.0.2 @@ -16118,7 +16130,7 @@ snapshots: dependencies: path-key: 3.1.1 - npm@11.6.1: {} + npm@11.6.2: {} nth-check@2.1.1: dependencies: @@ -16566,7 +16578,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.8 + '@types/node': 22.18.10 long: 5.3.2 protractor@7.0.0: @@ -16654,9 +16666,9 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.23.0(bufferutil@4.0.9): + puppeteer-core@24.24.0(bufferutil@4.0.9): dependencies: - '@puppeteer/browsers': 2.10.10 + '@puppeteer/browsers': 2.10.11 chromium-bidi: 9.1.0(devtools-protocol@0.0.1508733) debug: 4.4.3(supports-color@10.2.2) devtools-protocol: 0.0.1508733 @@ -16664,6 +16676,7 @@ snapshots: webdriver-bidi-protocol: 0.3.6 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -16940,12 +16953,12 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.8)(rollup@4.46.2): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.10)(rollup@4.46.2): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) rollup: 4.46.2 optionalDependencies: - '@types/node': 22.18.8 + '@types/node': 22.18.10 rollup@4.46.2: dependencies: @@ -17519,6 +17532,7 @@ snapshots: fast-fifo: 1.3.2 text-decoder: 1.2.3 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a strict-event-emitter@0.5.1: {} @@ -17615,7 +17629,7 @@ snapshots: table-layout@4.1.1: dependencies: array-back: 6.2.2 - wordwrapjs: 5.1.0 + wordwrapjs: 5.1.1 tapable@2.3.0: {} @@ -17631,9 +17645,10 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.4.5 + bare-fs: 4.4.10 bare-path: 3.0.0 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - react-native-b4a @@ -17651,6 +17666,7 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.23.0 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a tar@6.2.1: @@ -17791,14 +17807,14 @@ snapshots: dependencies: typescript: 5.9.2 - ts-node@10.9.2(@types/node@22.18.8)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.10)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.8 + '@types/node': 22.18.10 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17823,7 +17839,7 @@ snapshots: tsx@4.20.6: dependencies: esbuild: 0.25.9 - get-tsconfig: 4.10.1 + get-tsconfig: 4.12.0 optionalDependencies: fsevents: 2.3.3 @@ -18093,6 +18109,7 @@ snapshots: verdaccio-audit: 13.0.0-next-8.19(encoding@0.1.13) verdaccio-htpasswd: 13.0.0-next-8.19 transitivePeerDependencies: + - bare-abort-controller - encoding - react-native-b4a - supports-color @@ -18234,7 +18251,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.48.1 + memfs: 4.49.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -18247,7 +18264,7 @@ snapshots: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 '@types/express': 4.17.23 - '@types/express-serve-static-core': 4.19.6 + '@types/express-serve-static-core': 4.19.7 '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.9 '@types/sockjs': 0.3.36 @@ -18312,7 +18329,7 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.1 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 @@ -18415,7 +18432,7 @@ snapshots: wordwrap@1.0.0: {} - wordwrapjs@5.1.0: {} + wordwrapjs@5.1.1: {} wrap-ansi@6.2.0: dependencies: From b45f97a6808a9c5e6426db6e0ef0fd544116f0b6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 13 Oct 2025 18:06:17 +0000 Subject: [PATCH 172/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 - package.json | 2 +- pnpm-lock.yaml | 440 +++++++++--------- 10 files changed, 277 insertions(+), 279 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index bdfbf99221f0..512d1aef8fe6 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + - uses: angular/dev-infra/github-actions/branch-manager@380d026b78f9326d72673a05aad0b2b13441dca9 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ef5cd71c477..266fa8fdaa82 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index a4e64b00aaf2..889d7417ccba 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + - uses: angular/dev-infra/github-actions/pull-request-labeling@380d026b78f9326d72673a05aad0b2b13441dca9 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + - uses: angular/dev-infra/github-actions/post-approval-changes@380d026b78f9326d72673a05aad0b2b13441dca9 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 1f1c6ccc84f2..32376468b159 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + - uses: angular/dev-infra/github-actions/feature-request@380d026b78f9326d72673a05aad0b2b13441dca9 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 153ca2d22194..a25c3f081926 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - 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 69e2ae145ed0..97cf4bf746dc 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/linting/licenses@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - 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@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 891a42b38724..7e70a41f73cc 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "56543b10ddb9941c76b4413cc24ec3fa7a43cf5c", + commit = "380d026b78f9326d72673a05aad0b2b13441dca9", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 88fd0fc19f9e..e8b86d71a634 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -20,14 +20,12 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", - "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/MODULE.bazel": "499ce65b6126f344f9a630040b9db91b36b20c6d1436026120067d922c2d69bd", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.23.0/MODULE.bazel": "9b437a9ec25a619304940434fa03b8d41248213eb7009da2c898f3d6a4075ef3", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.23.0/source.json": "7b4cac4e61bae4262e7f67f6bec0b200fcb9060044f12e84a3bc37e0be245de7", "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/MODULE.bazel": "071d1952527721bf8b180e1299def24edaece9d7466e31a311981640da82c6be", "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299", "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", - "https://bcr.bazel.build/modules/aspect_rules_js/2.6.0/MODULE.bazel": "5a6f8dbc5b170769453f1819d469fe54b0e4b86a0e82e13fde8e5a45438a1890", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/MODULE.bazel": "ed2a871f4ab8fbde0cab67c425745069d84ea64b64313fa1a2954017326511f5", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/source.json": "59933fb8ddabd9740a3c12ff5552f06f2b8d68c3633883c681c757bf227c3763", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", diff --git a/package.json b/package.json index 6f0c35cef0dd..a3ff7b1e65dd 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.4", "@angular/localize": "20.3.4", "@angular/material": "20.2.8", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e877c7e4fe14a67d425f5af705bf583fbbba9967", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c38af36ddffcc85dd8180e595b9ef052f1a5c66d", "@angular/platform-browser": "20.3.4", "@angular/platform-server": "20.3.4", "@angular/router": "20.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3353e9287e81..a8b103de35a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.8 version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e877c7e4fe14a67d425f5af705bf583fbbba9967 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c38af36ddffcc85dd8180e595b9ef052f1a5c66d + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.4 version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.7.0) + version: 5.1.14(@types/node@24.7.2) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.7.0) + version: 7.8.2(@types/node@24.7.2) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.0))(@types/node@24.7.0)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.2))(@types/node@24.7.2)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.7.0) + version: 7.8.2(@types/node@24.7.2) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967} - version: 0.0.0-56543b10ddb9941c76b4413cc24ec3fa7a43cf5c + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d} + version: 0.0.0-380d026b78f9326d72673a05aad0b2b13441dca9 hasBin: true '@angular/platform-browser@20.3.4': @@ -1872,23 +1872,23 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@firebase/ai@2.3.0': - resolution: {integrity: sha512-rVZgf4FszXPSFVIeWLE8ruLU2JDmPXw4XgghcC0x/lK9veGJIyu+DvyumjreVhW/RwD3E5cNPWxQunzylhf/6w==} + '@firebase/ai@2.4.0': + resolution: {integrity: sha512-YilG6AJ/nYpCKtxZyvEzBRAQv5bU+2tBOKX4Ps0rNNSdxN39aT37kGhjATbk1kq1z5Lq7mkWglw/ajAF3lOWUg==} engines: {node: '>=20.0.0'} peerDependencies: '@firebase/app': 0.x '@firebase/app-types': 0.x - '@firebase/analytics-compat@0.2.24': - resolution: {integrity: sha512-jE+kJnPG86XSqGQGhXXYt1tpTbCTED8OQJ/PQ90SEw14CuxRxx/H+lFbWA1rlFtFSsTCptAJtgyRBwr/f00vsw==} + '@firebase/analytics-compat@0.2.25': + resolution: {integrity: sha512-fdzoaG0BEKbqksRDhmf4JoyZf16Wosrl0Y7tbZtJyVDOOwziE0vrFjmZuTdviL0yhak+Nco6rMsUUbkbD+qb6Q==} peerDependencies: '@firebase/app-compat': 0.x '@firebase/analytics-types@0.8.3': resolution: {integrity: sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==} - '@firebase/analytics@0.10.18': - resolution: {integrity: sha512-iN7IgLvM06iFk8BeFoWqvVpRFW3Z70f+Qe2PfCJ7vPIgLPjHXDE774DhCT5Y2/ZU/ZbXPDPD60x/XPWEoZLNdg==} + '@firebase/analytics@0.10.19': + resolution: {integrity: sha512-3wU676fh60gaiVYQEEXsbGS4HbF2XsiBphyvvqDbtC1U4/dO4coshbYktcCHq+HFaGIK07iHOh4pME0hEq1fcg==} peerDependencies: '@firebase/app': 0.x @@ -1910,15 +1910,15 @@ packages: peerDependencies: '@firebase/app': 0.x - '@firebase/app-compat@0.5.3': - resolution: {integrity: sha512-rRK9YOvgsAU/+edjgubL1q1FyCMjBZZs+fAWtD36tklawkh6WZV07sNLVSceuni+a21oby6xoad+3R8dfztOrA==} + '@firebase/app-compat@0.5.4': + resolution: {integrity: sha512-T7ifGmb+awJEcp542Ek4HtNfBxcBrnuk1ggUdqyFEdsXHdq7+wVlhvE6YukTL7NS8hIkEfL7TMAPx/uCNqt30g==} engines: {node: '>=20.0.0'} '@firebase/app-types@0.9.3': resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - '@firebase/app@0.14.3': - resolution: {integrity: sha512-by1leTfZkwGycPKRWpc+p5/IhpnOj8zaScVi4RRm9fMoFYS3IE87Wzx1Yf/ruVYowXOEuLqYY3VmJw5tU3+0Bg==} + '@firebase/app@0.14.4': + resolution: {integrity: sha512-pUxEGmR+uu21OG/icAovjlu1fcYJzyVhhT0rsCrn+zi+nHtrS43Bp9KPn9KGa4NMspCUE++nkyiqziuIvJdwzw==} engines: {node: '>=20.0.0'} '@firebase/auth-compat@0.6.0': @@ -2113,8 +2113,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.22.0': - resolution: {integrity: sha512-siETS3zTm3EGpTT4+BFc1z20xXBYfueD3gCYfxkOjuAKRk8lt8TJevDHi3zepn1oSI6NhG/LZvy0i+Q3qheObg==} + '@google/genai@1.24.0': + resolution: {integrity: sha512-e3jZF9Dx3dDaDCzygdMuYByHI2xJZ0PaD3r2fRgHZe2IOwBnmJ/Tu5Lt/nefTCxqr1ZnbcbQK9T13d8U/9UMWg==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -3426,8 +3426,8 @@ packages: '@types/node@22.18.10': resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} - '@types/node@24.7.0': - resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} + '@types/node@24.7.2': + resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -5366,8 +5366,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase@12.3.0: - resolution: {integrity: sha512-/JVja0IDO8zPETGv4TvvBwo7RwcQFz+RQ3JBETNtUSeqsDdI9G7fhRTkCy1sPKnLzW0xpm/kL8GOj6ncndTT3g==} + firebase@12.4.0: + resolution: {integrity: sha512-/chNgDQ6ppPPGOQO4jctxOa/5JeQxuhaxA7Y90K0I+n/wPfoO8mRveedhVUdo7ExLcWUivnnow/ouSLYSI5Icw==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -9261,13 +9261,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e877c7e4fe14a67d425f5af705bf583fbbba9967(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.22.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.6(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@google/genai': 1.24.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.6(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) '@octokit/auth-app': 8.1.1 '@octokit/core': 7.0.5 '@octokit/graphql': 9.0.2 @@ -9285,7 +9285,7 @@ snapshots: '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -9299,7 +9299,7 @@ snapshots: ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 - firebase: 12.3.0 + firebase: 12.4.0 folder-hash: 4.1.1(supports-color@10.2.2) git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) jasmine: 5.12.0 @@ -10221,9 +10221,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@firebase/ai@2.3.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': + '@firebase/ai@2.4.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/app-check-interop-types': 0.3.3 '@firebase/app-types': 0.9.3 '@firebase/component': 0.7.0 @@ -10231,11 +10231,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/analytics-compat@0.2.24(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/analytics-compat@0.2.25(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/analytics': 0.10.18(@firebase/app@0.14.3) + '@firebase/analytics': 0.10.19(@firebase/app@0.14.4) '@firebase/analytics-types': 0.8.3 - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10244,20 +10244,20 @@ snapshots: '@firebase/analytics-types@0.8.3': {} - '@firebase/analytics@0.10.18(@firebase/app@0.14.3)': + '@firebase/analytics@0.10.19(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/app-check-compat@0.4.0(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-check': 0.11.0(@firebase/app@0.14.3) + '@firebase/app-check': 0.11.0(@firebase/app@0.14.4) '@firebase/app-check-types': 0.5.3 - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10269,17 +10269,17 @@ snapshots: '@firebase/app-check-types@0.5.3': {} - '@firebase/app-check@0.11.0(@firebase/app@0.14.3)': + '@firebase/app-check@0.11.0(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/app-compat@0.5.3': + '@firebase/app-compat@0.5.4': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10287,7 +10287,7 @@ snapshots: '@firebase/app-types@0.9.3': {} - '@firebase/app@0.14.3': + '@firebase/app@0.14.4': dependencies: '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10295,10 +10295,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': + '@firebase/auth-compat@0.6.0(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.3) + '@firebase/app-compat': 0.5.4 + '@firebase/auth': 1.11.0(@firebase/app@0.14.4) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 @@ -10315,9 +10315,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/auth@1.11.0(@firebase/app@0.14.3)': + '@firebase/auth@1.11.0(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10328,9 +10328,9 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/data-connect@0.3.11(@firebase/app@0.14.3)': + '@firebase/data-connect@0.3.11(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 @@ -10361,11 +10361,11 @@ snapshots: faye-websocket: 0.11.4 tslib: 2.8.1 - '@firebase/firestore-compat@0.4.2(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': + '@firebase/firestore-compat@0.4.2(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 - '@firebase/firestore': 4.9.2(@firebase/app@0.14.3) + '@firebase/firestore': 4.9.2(@firebase/app@0.14.4) '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10378,9 +10378,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/firestore@4.9.2(@firebase/app@0.14.3)': + '@firebase/firestore@4.9.2(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 @@ -10389,11 +10389,11 @@ snapshots: '@grpc/proto-loader': 0.7.15 tslib: 2.8.1 - '@firebase/functions-compat@0.4.1(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/functions-compat@0.4.1(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 - '@firebase/functions': 0.13.1(@firebase/app@0.14.3) + '@firebase/functions': 0.13.1(@firebase/app@0.14.4) '@firebase/functions-types': 0.6.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10402,9 +10402,9 @@ snapshots: '@firebase/functions-types@0.6.3': {} - '@firebase/functions@0.13.1(@firebase/app@0.14.3)': + '@firebase/functions@0.13.1(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/app-check-interop-types': 0.3.3 '@firebase/auth-interop-types': 0.2.4 '@firebase/component': 0.7.0 @@ -10412,11 +10412,11 @@ snapshots: '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': + '@firebase/installations-compat@0.2.19(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10428,9 +10428,9 @@ snapshots: dependencies: '@firebase/app-types': 0.9.3 - '@firebase/installations@0.6.19(@firebase/app@0.14.3)': + '@firebase/installations@0.6.19(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 idb: 7.1.1 @@ -10440,11 +10440,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/messaging-compat@0.2.23(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 - '@firebase/messaging': 0.12.23(@firebase/app@0.14.3) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.4) '@firebase/util': 1.13.0 tslib: 2.8.1 transitivePeerDependencies: @@ -10452,22 +10452,22 @@ snapshots: '@firebase/messaging-interop-types@0.2.3': {} - '@firebase/messaging@0.12.23(@firebase/app@0.14.3)': + '@firebase/messaging@0.12.23(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) '@firebase/messaging-interop-types': 0.2.3 '@firebase/util': 1.13.0 idb: 7.1.1 tslib: 2.8.1 - '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/performance-compat@0.2.22(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/performance': 0.7.9(@firebase/app@0.14.3) + '@firebase/performance': 0.7.9(@firebase/app@0.14.4) '@firebase/performance-types': 0.2.3 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10476,22 +10476,22 @@ snapshots: '@firebase/performance-types@0.2.3': {} - '@firebase/performance@0.7.9(@firebase/app@0.14.3)': + '@firebase/performance@0.7.9(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 web-vitals: 4.2.4 - '@firebase/remote-config-compat@0.2.20(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3)': + '@firebase/remote-config-compat@0.2.20(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 '@firebase/logger': 0.5.0 - '@firebase/remote-config': 0.7.0(@firebase/app@0.14.3) + '@firebase/remote-config': 0.7.0(@firebase/app@0.14.4) '@firebase/remote-config-types': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10500,20 +10500,20 @@ snapshots: '@firebase/remote-config-types@0.5.0': {} - '@firebase/remote-config@0.7.0(@firebase/app@0.14.3)': + '@firebase/remote-config@0.7.0(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) '@firebase/logger': 0.5.0 '@firebase/util': 1.13.0 tslib: 2.8.1 - '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3)': + '@firebase/storage-compat@0.4.0(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4)': dependencies: - '@firebase/app-compat': 0.5.3 + '@firebase/app-compat': 0.5.4 '@firebase/component': 0.7.0 - '@firebase/storage': 0.14.0(@firebase/app@0.14.3) + '@firebase/storage': 0.14.0(@firebase/app@0.14.4) '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.13.0) '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10526,9 +10526,9 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.13.0 - '@firebase/storage@0.14.0(@firebase/app@0.14.3)': + '@firebase/storage@0.14.0(@firebase/app@0.14.4)': dependencies: - '@firebase/app': 0.14.3 + '@firebase/app': 0.14.4 '@firebase/component': 0.7.0 '@firebase/util': 1.13.0 tslib: 2.8.1 @@ -10600,7 +10600,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.22.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.24.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -10651,150 +10651,150 @@ snapshots: '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.2.4(@types/node@24.7.0)': + '@inquirer/checkbox@4.2.4(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/confirm@5.1.14(@types/node@24.7.0)': + '@inquirer/confirm@5.1.14(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/confirm@5.1.18(@types/node@24.7.0)': + '@inquirer/confirm@5.1.18(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/core@10.2.2(@types/node@24.7.0)': + '@inquirer/core@10.2.2(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.2) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/editor@4.2.20(@types/node@24.7.0)': + '@inquirer/editor@4.2.20(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/external-editor': 1.0.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/external-editor': 1.0.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/expand@4.0.20(@types/node@24.7.0)': + '@inquirer/expand@4.0.20(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/external-editor@1.0.2(@types/node@24.7.0)': + '@inquirer/external-editor@1.0.2(@types/node@24.7.2)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.4(@types/node@24.7.0)': + '@inquirer/input@4.2.4(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/number@3.0.20(@types/node@24.7.0)': + '@inquirer/number@3.0.20(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/password@4.0.20(@types/node@24.7.0)': + '@inquirer/password@4.0.20(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 - - '@inquirer/prompts@7.8.2(@types/node@24.7.0)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.7.0) - '@inquirer/confirm': 5.1.14(@types/node@24.7.0) - '@inquirer/editor': 4.2.20(@types/node@24.7.0) - '@inquirer/expand': 4.0.20(@types/node@24.7.0) - '@inquirer/input': 4.2.4(@types/node@24.7.0) - '@inquirer/number': 3.0.20(@types/node@24.7.0) - '@inquirer/password': 4.0.20(@types/node@24.7.0) - '@inquirer/rawlist': 4.1.8(@types/node@24.7.0) - '@inquirer/search': 3.1.3(@types/node@24.7.0) - '@inquirer/select': 4.3.4(@types/node@24.7.0) + '@types/node': 24.7.2 + + '@inquirer/prompts@7.8.2(@types/node@24.7.2)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) + '@inquirer/confirm': 5.1.14(@types/node@24.7.2) + '@inquirer/editor': 4.2.20(@types/node@24.7.2) + '@inquirer/expand': 4.0.20(@types/node@24.7.2) + '@inquirer/input': 4.2.4(@types/node@24.7.2) + '@inquirer/number': 3.0.20(@types/node@24.7.2) + '@inquirer/password': 4.0.20(@types/node@24.7.2) + '@inquirer/rawlist': 4.1.8(@types/node@24.7.2) + '@inquirer/search': 3.1.3(@types/node@24.7.2) + '@inquirer/select': 4.3.4(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 - - '@inquirer/prompts@7.8.6(@types/node@24.7.0)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.7.0) - '@inquirer/confirm': 5.1.18(@types/node@24.7.0) - '@inquirer/editor': 4.2.20(@types/node@24.7.0) - '@inquirer/expand': 4.0.20(@types/node@24.7.0) - '@inquirer/input': 4.2.4(@types/node@24.7.0) - '@inquirer/number': 3.0.20(@types/node@24.7.0) - '@inquirer/password': 4.0.20(@types/node@24.7.0) - '@inquirer/rawlist': 4.1.8(@types/node@24.7.0) - '@inquirer/search': 3.1.3(@types/node@24.7.0) - '@inquirer/select': 4.3.4(@types/node@24.7.0) + '@types/node': 24.7.2 + + '@inquirer/prompts@7.8.6(@types/node@24.7.2)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) + '@inquirer/confirm': 5.1.18(@types/node@24.7.2) + '@inquirer/editor': 4.2.20(@types/node@24.7.2) + '@inquirer/expand': 4.0.20(@types/node@24.7.2) + '@inquirer/input': 4.2.4(@types/node@24.7.2) + '@inquirer/number': 3.0.20(@types/node@24.7.2) + '@inquirer/password': 4.0.20(@types/node@24.7.2) + '@inquirer/rawlist': 4.1.8(@types/node@24.7.2) + '@inquirer/search': 3.1.3(@types/node@24.7.2) + '@inquirer/select': 4.3.4(@types/node@24.7.2) optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/rawlist@4.1.8(@types/node@24.7.0)': + '@inquirer/rawlist@4.1.8(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/search@3.1.3(@types/node@24.7.0)': + '@inquirer/search@3.1.3(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/select@4.3.4(@types/node@24.7.0)': + '@inquirer/select@4.3.4(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/core': 10.2.2(@types/node@24.7.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 - '@inquirer/type@3.0.8(@types/node@24.7.0)': + '@inquirer/type@3.0.8(@types/node@24.7.2)': optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 '@isaacs/balanced-match@4.0.1': {} @@ -10880,10 +10880,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.0))(@types/node@24.7.0)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.2))(@types/node@24.7.2)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.7.0) - '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@inquirer/prompts': 7.8.2(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.7.2) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11846,7 +11846,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.7.0': + '@types/node@24.7.2': dependencies: undici-types: 7.14.0 @@ -12237,9 +12237,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12249,13 +12249,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14188,7 +14188,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -14321,35 +14321,35 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase@12.3.0: + firebase@12.4.0: dependencies: - '@firebase/ai': 2.3.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) - '@firebase/analytics': 0.10.18(@firebase/app@0.14.3) - '@firebase/analytics-compat': 0.2.24(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/app': 0.14.3 - '@firebase/app-check': 0.11.0(@firebase/app@0.14.3) - '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/app-compat': 0.5.3 + '@firebase/ai': 2.4.0(@firebase/app-types@0.9.3)(@firebase/app@0.14.4) + '@firebase/analytics': 0.10.19(@firebase/app@0.14.4) + '@firebase/analytics-compat': 0.2.25(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/app': 0.14.4 + '@firebase/app-check': 0.11.0(@firebase/app@0.14.4) + '@firebase/app-check-compat': 0.4.0(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/app-compat': 0.5.4 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.11.0(@firebase/app@0.14.3) - '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) - '@firebase/data-connect': 0.3.11(@firebase/app@0.14.3) + '@firebase/auth': 1.11.0(@firebase/app@0.14.4) + '@firebase/auth-compat': 0.6.0(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4) + '@firebase/data-connect': 0.3.11(@firebase/app@0.14.4) '@firebase/database': 1.1.0 '@firebase/database-compat': 2.1.0 - '@firebase/firestore': 4.9.2(@firebase/app@0.14.3) - '@firebase/firestore-compat': 0.4.2(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) - '@firebase/functions': 0.13.1(@firebase/app@0.14.3) - '@firebase/functions-compat': 0.4.1(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/installations': 0.6.19(@firebase/app@0.14.3) - '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) - '@firebase/messaging': 0.12.23(@firebase/app@0.14.3) - '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/performance': 0.7.9(@firebase/app@0.14.3) - '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/remote-config': 0.7.0(@firebase/app@0.14.3) - '@firebase/remote-config-compat': 0.2.20(@firebase/app-compat@0.5.3)(@firebase/app@0.14.3) - '@firebase/storage': 0.14.0(@firebase/app@0.14.3) - '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.3)(@firebase/app-types@0.9.3)(@firebase/app@0.14.3) + '@firebase/firestore': 4.9.2(@firebase/app@0.14.4) + '@firebase/firestore-compat': 0.4.2(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4) + '@firebase/functions': 0.13.1(@firebase/app@0.14.4) + '@firebase/functions-compat': 0.4.1(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/installations': 0.6.19(@firebase/app@0.14.4) + '@firebase/installations-compat': 0.2.19(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4) + '@firebase/messaging': 0.12.23(@firebase/app@0.14.4) + '@firebase/messaging-compat': 0.2.23(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/performance': 0.7.9(@firebase/app@0.14.4) + '@firebase/performance-compat': 0.2.22(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/remote-config': 0.7.0(@firebase/app@0.14.4) + '@firebase/remote-config-compat': 0.2.20(@firebase/app-compat@0.5.4)(@firebase/app@0.14.4) + '@firebase/storage': 0.14.0(@firebase/app@0.14.4) + '@firebase/storage-compat': 0.4.0(@firebase/app-compat@0.5.4)(@firebase/app-types@0.9.3)(@firebase/app@0.14.4) '@firebase/util': 1.13.0 transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -18120,13 +18120,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18141,7 +18141,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18150,7 +18150,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18159,11 +18159,11 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.7.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18181,11 +18181,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.7.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 24.7.2 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 82f89009bf508aaccc0e1146d23dcb39f5fdf4d6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 14 Oct 2025 11:05:10 +0000 Subject: [PATCH 173/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 9 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 512d1aef8fe6..82954fae4cf2 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@380d026b78f9326d72673a05aad0b2b13441dca9 + - uses: angular/dev-infra/github-actions/branch-manager@06bada8d42711ac8db590552fa8103777baa7ccf with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 266fa8fdaa82..cef8ff9e672e 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 889d7417ccba..384e32711ea8 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@380d026b78f9326d72673a05aad0b2b13441dca9 + - uses: angular/dev-infra/github-actions/pull-request-labeling@06bada8d42711ac8db590552fa8103777baa7ccf 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@380d026b78f9326d72673a05aad0b2b13441dca9 + - uses: angular/dev-infra/github-actions/post-approval-changes@06bada8d42711ac8db590552fa8103777baa7ccf with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 32376468b159..f4291b61fb44 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@380d026b78f9326d72673a05aad0b2b13441dca9 + - uses: angular/dev-infra/github-actions/feature-request@06bada8d42711ac8db590552fa8103777baa7ccf with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index a25c3f081926..652d34a54908 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - 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 97cf4bf746dc..3efca148bdc8 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/linting/licenses@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - 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@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@380d026b78f9326d72673a05aad0b2b13441dca9 + uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 7e70a41f73cc..c89b3304ff70 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "380d026b78f9326d72673a05aad0b2b13441dca9", + commit = "06bada8d42711ac8db590552fa8103777baa7ccf", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index a3ff7b1e65dd..97dd0fe06dc1 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.4", "@angular/localize": "20.3.4", "@angular/material": "20.2.8", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#c38af36ddffcc85dd8180e595b9ef052f1a5c66d", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#88fadb5235577583689a2b0979b9b724b383b963", "@angular/platform-browser": "20.3.4", "@angular/platform-server": "20.3.4", "@angular/router": "20.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8b103de35a1..2b23dae66121 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.8 version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#c38af36ddffcc85dd8180e595b9ef052f1a5c66d - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#88fadb5235577583689a2b0979b9b724b383b963 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.4 version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d} - version: 0.0.0-380d026b78f9326d72673a05aad0b2b13441dca9 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963} + version: 0.0.0-06bada8d42711ac8db590552fa8103777baa7ccf hasBin: true '@angular/platform-browser@20.3.4': @@ -9261,7 +9261,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/c38af36ddffcc85dd8180e595b9ef052f1a5c66d(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 2f4bc09db0c8fdeb8b12e13d0c5cc7f86beba630 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:56:40 +0000 Subject: [PATCH 174/228] docs(@angular/build): add descriptions for application builder options Adds more detailed descriptions for the `assets` and `outputHashing` options in the `@angular/build:application` builder's schema. This improves clarity for users configuring these options. Closes #31477 (cherry picked from commit 2a1667fdc2cbdab58af50150d2875f3ea3863a8c) --- packages/angular/build/src/builders/application/schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/angular/build/src/builders/application/schema.json b/packages/angular/build/src/builders/application/schema.json index 3ee8699e097f..c0a0f98313aa 100644 --- a/packages/angular/build/src/builders/application/schema.json +++ b/packages/angular/build/src/builders/application/schema.json @@ -6,7 +6,7 @@ "properties": { "assets": { "type": "array", - "description": "List of static application assets.", + "description": "Define the assets to be copied to the output directory. These assets are copied as-is without any further processing or hashing.", "default": [], "items": { "$ref": "#/definitions/assetPattern" @@ -441,7 +441,7 @@ }, "outputHashing": { "type": "string", - "description": "Define the output filename cache-busting hashing mode.", + "description": "Define the output filename cache-busting hashing mode.\n\n- `none`: No hashing.\n- `all`: Hash for all output bundles. \n- `media`: Hash for all output media (e.g., images, fonts, etc. that are referenced in CSS files).\n- `bundles`: Hash for output of lazy and main bundles.", "default": "none", "enum": ["none", "all", "media", "bundles"] }, From 03e3bfc9e42ab176313eb8f0c252f1c63e18ad5c Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:59:16 +0000 Subject: [PATCH 175/228] docs(@angular-devkit/build-angular): add descriptions for browser builder options Adds more detailed descriptions for the `assets` and `outputHashing` options in the `@angular-devkit/build-angular:browser` builder's schema. This improves clarity for users configuring these options. (cherry picked from commit 00b7d74fb6936372591cd3dd10edfae8b3007524) --- .../build_angular/src/builders/browser/schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/builders/browser/schema.json b/packages/angular_devkit/build_angular/src/builders/browser/schema.json index f8170c3969da..301eeafcc4f1 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser/schema.json +++ b/packages/angular_devkit/build_angular/src/builders/browser/schema.json @@ -6,7 +6,7 @@ "properties": { "assets": { "type": "array", - "description": "List of static application assets.", + "description": "Define the assets to be copied to the output directory. These assets are copied as-is without any further processing or hashing.", "default": [], "items": { "$ref": "#/definitions/assetPattern" @@ -319,7 +319,7 @@ }, "outputHashing": { "type": "string", - "description": "Define the output filename cache-busting hashing mode.", + "description": "Define the output filename cache-busting hashing mode.\n\n- `none`: No hashing.\n- `all`: Hash for all output bundles. \n- `media`: Hash for all output media (e.g., images, fonts, etc. that are referenced in CSS files).\n- `bundles`: Hash for output of lazy and main bundles.", "default": "none", "enum": ["none", "all", "media", "bundles"] }, From 108501a4b3e69862b49da573e308f70b20a18b71 Mon Sep 17 00:00:00 2001 From: Brandon Roberts Date: Wed, 15 Oct 2025 07:48:09 -0500 Subject: [PATCH 176/228] docs(@angular/ssr): update examples for withRoutes configuration (cherry picked from commit 6fb85b2a4cadbc57ec23bf363ebc0e162221cad7) --- packages/angular/ssr/src/routes/route-config.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/angular/ssr/src/routes/route-config.ts b/packages/angular/ssr/src/routes/route-config.ts index f328cee4becc..c8849a1067b3 100644 --- a/packages/angular/ssr/src/routes/route-config.ts +++ b/packages/angular/ssr/src/routes/route-config.ts @@ -233,19 +233,19 @@ export const SERVER_ROUTES_CONFIG = new InjectionToken('SERV * * const serverRoutes: ServerRoute[] = [ * { - * route: '', // This renders the "/" route on the client (CSR) + * path: '', // This renders the "/" route on the client (CSR) * renderMode: RenderMode.Client, * }, * { - * route: 'about', // This page is static, so we prerender it (SSG) + * path: 'about', // This page is static, so we prerender it (SSG) * renderMode: RenderMode.Prerender, * }, * { - * route: 'profile', // This page requires user-specific data, so we use SSR + * path: 'profile', // This page requires user-specific data, so we use SSR * renderMode: RenderMode.Server, * }, * { - * route: '**', // All other routes will be rendered on the server (SSR) + * path: '**', // All other routes will be rendered on the server (SSR) * renderMode: RenderMode.Server, * }, * ]; From 6d365ac0372fad995b1730a95091076fa1ee5599 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 15 Oct 2025 15:36:21 +0000 Subject: [PATCH 177/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 257 ++++++++++++++++-- 9 files changed, 287 insertions(+), 84 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 82954fae4cf2..581366706c5b 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@06bada8d42711ac8db590552fa8103777baa7ccf + - uses: angular/dev-infra/github-actions/branch-manager@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cef8ff9e672e..6b4e78369cfd 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 384e32711ea8..0533aac7d140 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@06bada8d42711ac8db590552fa8103777baa7ccf + - uses: angular/dev-infra/github-actions/pull-request-labeling@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 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@06bada8d42711ac8db590552fa8103777baa7ccf + - uses: angular/dev-infra/github-actions/post-approval-changes@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index f4291b61fb44..607645f76352 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@06bada8d42711ac8db590552fa8103777baa7ccf + - uses: angular/dev-infra/github-actions/feature-request@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 652d34a54908..2d48a45014cf 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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 3efca148bdc8..09b26c753bfe 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/linting/licenses@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - 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@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@06bada8d42711ac8db590552fa8103777baa7ccf + uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index c89b3304ff70..536edc4d066e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "06bada8d42711ac8db590552fa8103777baa7ccf", + commit = "1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 97dd0fe06dc1..c156c7c1bf3c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.4", "@angular/localize": "20.3.4", "@angular/material": "20.2.8", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#88fadb5235577583689a2b0979b9b724b383b963", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#2feb4d5082bd3322d64282894b81809c1cf93ca9", "@angular/platform-browser": "20.3.4", "@angular/platform-server": "20.3.4", "@angular/router": "20.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b23dae66121..1b12cb8eaabb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.8 version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#88fadb5235577583689a2b0979b9b724b383b963 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#2feb4d5082bd3322d64282894b81809c1cf93ca9 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.4 version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963} - version: 0.0.0-06bada8d42711ac8db590552fa8103777baa7ccf + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9} + version: 0.0.0-1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 hasBin: true '@angular/platform-browser@20.3.4': @@ -2163,6 +2163,10 @@ packages: resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} engines: {node: '>=18'} + '@inquirer/ansi@1.0.1': + resolution: {integrity: sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==} + engines: {node: '>=18'} + '@inquirer/checkbox@4.2.4': resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} engines: {node: '>=18'} @@ -2172,6 +2176,15 @@ packages: '@types/node': optional: true + '@inquirer/checkbox@4.3.0': + resolution: {integrity: sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@5.1.14': resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} engines: {node: '>=18'} @@ -2181,8 +2194,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.18': - resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} + '@inquirer/confirm@5.1.19': + resolution: {integrity: sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2199,6 +2212,15 @@ packages: '@types/node': optional: true + '@inquirer/core@10.3.0': + resolution: {integrity: sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/editor@4.2.20': resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} engines: {node: '>=18'} @@ -2208,6 +2230,15 @@ packages: '@types/node': optional: true + '@inquirer/editor@4.2.21': + resolution: {integrity: sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/expand@4.0.20': resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} engines: {node: '>=18'} @@ -2217,6 +2248,15 @@ packages: '@types/node': optional: true + '@inquirer/expand@4.0.21': + resolution: {integrity: sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/external-editor@1.0.2': resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} engines: {node: '>=18'} @@ -2230,6 +2270,10 @@ packages: resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} + '@inquirer/figures@1.0.14': + resolution: {integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==} + engines: {node: '>=18'} + '@inquirer/input@4.2.4': resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} engines: {node: '>=18'} @@ -2239,6 +2283,15 @@ packages: '@types/node': optional: true + '@inquirer/input@4.2.5': + resolution: {integrity: sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/number@3.0.20': resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} engines: {node: '>=18'} @@ -2248,6 +2301,15 @@ packages: '@types/node': optional: true + '@inquirer/number@3.0.21': + resolution: {integrity: sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/password@4.0.20': resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} engines: {node: '>=18'} @@ -2257,6 +2319,15 @@ packages: '@types/node': optional: true + '@inquirer/password@4.0.21': + resolution: {integrity: sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/prompts@7.8.2': resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==} engines: {node: '>=18'} @@ -2266,8 +2337,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.6': - resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==} + '@inquirer/prompts@7.9.0': + resolution: {integrity: sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2284,6 +2355,15 @@ packages: '@types/node': optional: true + '@inquirer/rawlist@4.1.9': + resolution: {integrity: sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/search@3.1.3': resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} engines: {node: '>=18'} @@ -2293,6 +2373,15 @@ packages: '@types/node': optional: true + '@inquirer/search@3.2.0': + resolution: {integrity: sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/select@4.3.4': resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} engines: {node: '>=18'} @@ -2302,6 +2391,15 @@ packages: '@types/node': optional: true + '@inquirer/select@4.4.0': + resolution: {integrity: sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/type@3.0.8': resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} engines: {node: '>=18'} @@ -2311,6 +2409,15 @@ packages: '@types/node': optional: true + '@inquirer/type@3.0.9': + resolution: {integrity: sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -9261,13 +9368,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/88fadb5235577583689a2b0979b9b724b383b963(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.24.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.6(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/prompts': 7.9.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) '@octokit/auth-app': 8.1.1 '@octokit/core': 7.0.5 '@octokit/graphql': 9.0.2 @@ -10651,6 +10758,8 @@ snapshots: '@inquirer/ansi@1.0.0': {} + '@inquirer/ansi@1.0.1': {} + '@inquirer/checkbox@4.2.4(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 @@ -10661,6 +10770,16 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/checkbox@4.3.0(@types/node@24.7.2)': + dependencies: + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@24.7.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/confirm@5.1.14(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10668,10 +10787,10 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 - '@inquirer/confirm@5.1.18(@types/node@24.7.2)': + '@inquirer/confirm@5.1.19(@types/node@24.7.2)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) optionalDependencies: '@types/node': 24.7.2 @@ -10688,6 +10807,19 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/core@10.3.0(@types/node@24.7.2)': + dependencies: + '@inquirer/ansi': 1.0.1 + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@24.7.2) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/editor@4.2.20(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10696,6 +10828,14 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/editor@4.2.21(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/external-editor': 1.0.2(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/expand@4.0.20(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10704,6 +10844,14 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/expand@4.0.21(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/external-editor@1.0.2(@types/node@24.7.2)': dependencies: chardet: 2.1.0 @@ -10713,6 +10861,8 @@ snapshots: '@inquirer/figures@1.0.13': {} + '@inquirer/figures@1.0.14': {} + '@inquirer/input@4.2.4(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10720,6 +10870,13 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/input@4.2.5(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/number@3.0.20(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10727,6 +10884,13 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/number@3.0.21(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/password@4.0.20(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 @@ -10735,6 +10899,14 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/password@4.0.21(@types/node@24.7.2)': + dependencies: + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/prompts@7.8.2(@types/node@24.7.2)': dependencies: '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) @@ -10750,18 +10922,18 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 - '@inquirer/prompts@7.8.6(@types/node@24.7.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) - '@inquirer/confirm': 5.1.18(@types/node@24.7.2) - '@inquirer/editor': 4.2.20(@types/node@24.7.2) - '@inquirer/expand': 4.0.20(@types/node@24.7.2) - '@inquirer/input': 4.2.4(@types/node@24.7.2) - '@inquirer/number': 3.0.20(@types/node@24.7.2) - '@inquirer/password': 4.0.20(@types/node@24.7.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.7.2) - '@inquirer/search': 3.1.3(@types/node@24.7.2) - '@inquirer/select': 4.3.4(@types/node@24.7.2) + '@inquirer/prompts@7.9.0(@types/node@24.7.2)': + dependencies: + '@inquirer/checkbox': 4.3.0(@types/node@24.7.2) + '@inquirer/confirm': 5.1.19(@types/node@24.7.2) + '@inquirer/editor': 4.2.21(@types/node@24.7.2) + '@inquirer/expand': 4.0.21(@types/node@24.7.2) + '@inquirer/input': 4.2.5(@types/node@24.7.2) + '@inquirer/number': 3.0.21(@types/node@24.7.2) + '@inquirer/password': 4.0.21(@types/node@24.7.2) + '@inquirer/rawlist': 4.1.9(@types/node@24.7.2) + '@inquirer/search': 3.2.0(@types/node@24.7.2) + '@inquirer/select': 4.4.0(@types/node@24.7.2) optionalDependencies: '@types/node': 24.7.2 @@ -10773,6 +10945,14 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/rawlist@4.1.9(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.7.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/search@3.1.3(@types/node@24.7.2)': dependencies: '@inquirer/core': 10.2.2(@types/node@24.7.2) @@ -10782,6 +10962,15 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/search@3.2.0(@types/node@24.7.2)': + dependencies: + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@24.7.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/select@4.3.4(@types/node@24.7.2)': dependencies: '@inquirer/ansi': 1.0.0 @@ -10792,10 +10981,24 @@ snapshots: optionalDependencies: '@types/node': 24.7.2 + '@inquirer/select@4.4.0(@types/node@24.7.2)': + dependencies: + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@24.7.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.2 + '@inquirer/type@3.0.8(@types/node@24.7.2)': optionalDependencies: '@types/node': 24.7.2 + '@inquirer/type@3.0.9(@types/node@24.7.2)': + optionalDependencies: + '@types/node': 24.7.2 + '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': From 9e048eec7828efd4a41ed44cd61a97af5decb824 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 15 Oct 2025 11:04:48 +0000 Subject: [PATCH 178/228] build: update pnpm to v10.18.3 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c156c7c1bf3c..85195de15751 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.18.2", + "packageManager": "pnpm@10.18.3", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.18.2" + "pnpm": "10.18.3" }, "author": "Angular Authors", "license": "MIT", From 16656a153113899ccdcaa28f442a690b5e0aee6b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 15 Oct 2025 07:05:48 +0000 Subject: [PATCH 179/228] build: update github/codeql-action action to v3.30.8 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1ae49daf362a..ba2f6f496ea9 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@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 + uses: github/codeql-action/init@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 + uses: github/codeql-action/analyze@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index eb947a19e324..c7d2c3bb6c2f 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@a8d1ac45b9a34d11fe398d5503176af0d06b303e # v3.30.7 + uses: github/codeql-action/upload-sarif@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 with: sarif_file: results.sarif From 5271547c80662de10cb3bcb648779a83f6efedfb Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 15 Oct 2025 08:09:59 +0000 Subject: [PATCH 180/228] fix(@angular/ssr): prevent malicious URL from overriding host A request with a specially crafted URL starting with a double slash (e.g., `//example.com`) could cause the server-side rendering logic to interpret the request as being for a different host. This is due to the behavior of the `URL` constructor when a protocol-relative URL is passed as the first argument. This vulnerability could be exploited to make the server execute requests to a malicious domain when relative paths are used within the application (e.g., via `HttpClient`), potentially leading to content injection or other security risks. The fix ensures that the request URL is always constructed as a full URL string, including the protocol and host, before being passed to the `URL` constructor. This prevents the host from being overridden by the path. Closes #31464 (cherry picked from commit 7be6c8f0e2883c85546eb1691c91fa7d4aefc0d3) --- packages/angular/ssr/node/src/request.ts | 4 +- .../angular/ssr/node/test/request_spec.ts | 158 ++++++++++++++++++ 2 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 packages/angular/ssr/node/test/request_spec.ts diff --git a/packages/angular/ssr/node/src/request.ts b/packages/angular/ssr/node/src/request.ts index f99e40491b07..32d90d0029fc 100644 --- a/packages/angular/ssr/node/src/request.ts +++ b/packages/angular/ssr/node/src/request.ts @@ -76,7 +76,7 @@ function createRequestHeaders(nodeHeaders: IncomingHttpHeaders): Headers { * @param nodeRequest - The Node.js `IncomingMessage` or `Http2ServerRequest` object to extract URL information from. * @returns A `URL` object representing the request URL. */ -function createRequestUrl(nodeRequest: IncomingMessage | Http2ServerRequest): URL { +export function createRequestUrl(nodeRequest: IncomingMessage | Http2ServerRequest): URL { const { headers, socket, @@ -101,7 +101,7 @@ function createRequestUrl(nodeRequest: IncomingMessage | Http2ServerRequest): UR } } - return new URL(originalUrl ?? url, `${protocol}://${hostnameWithPort}`); + return new URL(`${protocol}://${hostnameWithPort}${originalUrl ?? url}`); } /** diff --git a/packages/angular/ssr/node/test/request_spec.ts b/packages/angular/ssr/node/test/request_spec.ts new file mode 100644 index 000000000000..952faefd9f28 --- /dev/null +++ b/packages/angular/ssr/node/test/request_spec.ts @@ -0,0 +1,158 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import { IncomingMessage } from 'node:http'; +import { Http2ServerRequest } from 'node:http2'; +import { Socket } from 'node:net'; +import { createRequestUrl } from '../src/request'; + +// Helper to create a mock request object for testing. +function createRequest(details: { + headers: Record; + encryptedSocket?: boolean; + url?: string; + originalUrl?: string; +}): IncomingMessage { + return { + headers: details.headers, + socket: details.encryptedSocket ? ({ encrypted: true } as unknown as Socket) : new Socket(), + url: details.url, + originalUrl: details.originalUrl, + } as unknown as IncomingMessage; +} + +// Helper to create a mock Http2ServerRequest object for testing. +function createHttp2Request(details: { + headers: Record; + url?: string; +}): Http2ServerRequest { + return { + headers: details.headers, + socket: new Socket(), + url: details.url, + } as Http2ServerRequest; +} + +describe('createRequestUrl', () => { + it('should create a http URL with hostname and port from the host header', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'localhost:8080' }, + url: '/test', + }), + ); + expect(url.href).toBe('http://localhost:8080/test'); + }); + + it('should create a https URL when the socket is encrypted', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'example.com' }, + encryptedSocket: true, + url: '/test', + }), + ); + expect(url.href).toBe('https://example.com/test'); + }); + + it('should use "/" as the path when the URL path is empty', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'example.com' }, + encryptedSocket: true, + url: '', + }), + ); + expect(url.href).toBe('https://example.com/'); + }); + + it('should preserve query parameters in the URL path', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'example.com' }, + encryptedSocket: true, + url: '/test?a=1', + }), + ); + expect(url.href).toBe('https://example.com/test?a=1'); + }); + + it('should prioritize "originalUrl" over "url" for the path', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'example.com' }, + encryptedSocket: true, + url: '/test', + originalUrl: '/original', + }), + ); + expect(url.href).toBe('https://example.com/original'); + }); + + it('should use "/" as the path when both "url" and "originalUrl" are not provided', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'example.com' }, + encryptedSocket: true, + url: undefined, + originalUrl: undefined, + }), + ); + expect(url.href).toBe('https://example.com/'); + }); + + it('should treat a protocol-relative value in "url" as part of the path', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'localhost:8080' }, + url: '//example.com/test', + }), + ); + expect(url.href).toBe('http://localhost:8080//example.com/test'); + }); + + it('should treat a protocol-relative value in "originalUrl" as part of the path', () => { + const url = createRequestUrl( + createRequest({ + headers: { host: 'localhost:8080' }, + url: '/test', + originalUrl: '//example.com/original', + }), + ); + expect(url.href).toBe('http://localhost:8080//example.com/original'); + }); + + it('should prioritize "x-forwarded-host" and "x-forwarded-proto" headers', () => { + const url = createRequestUrl( + createRequest({ + headers: { + host: 'localhost:8080', + 'x-forwarded-host': 'example.com', + 'x-forwarded-proto': 'https', + }, + url: '/test', + }), + ); + expect(url.href).toBe('https://example.com/test'); + }); + + it('should use "x-forwarded-port" header for the port', () => { + const url = createRequestUrl( + createRequest({ + headers: { + host: 'localhost:8080', + 'x-forwarded-host': 'example.com', + 'x-forwarded-proto': 'https', + 'x-forwarded-port': '8443', + }, + url: '/test', + }), + ); + expect(url.href).toBe('https://example.com:8443/test'); + }); +}); From f7bd5679e6de24063a806eaf2fbde4ffdc1e1d8c Mon Sep 17 00:00:00 2001 From: Jan Martin Date: Wed, 15 Oct 2025 11:18:28 -0700 Subject: [PATCH 181/228] release: cut the v20.3.6 release --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 829897343352..811509121239 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ + + +# 20.3.6 (2025-10-15) + +### @angular/ssr + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------ | +| [5271547c8](https://github.com/angular/angular-cli/commit/5271547c80662de10cb3bcb648779a83f6efedfb) | fix | prevent malicious URL from overriding host | + + + # 20.3.5 (2025-10-08) diff --git a/package.json b/package.json index 85195de15751..03454a12285b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.5", + "version": "20.3.6", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 3a28fb6a13061215b881c49232db979fc3c2f641 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 15 Oct 2025 08:42:22 +0000 Subject: [PATCH 182/228] fix(@angular/ssr): correctly handle routes with matrix parameters This commit introduces a change to strip matrix parameters from the URL before route matching in Angular SSR. Previously, URLs containing matrix parameters would fail to match their corresponding routes. A new `stripMatrixParams` utility function has been added to remove these parameters, ensuring that route matching is not affected by their presence. Closes #31457 (cherry picked from commit 85c18b4ead77c6c090b9f5c63e9e034e58369152) --- packages/angular/ssr/src/routes/router.ts | 8 +++--- packages/angular/ssr/src/utils/url.ts | 24 ++++++++++++++++++ packages/angular/ssr/test/utils/url_spec.ts | 27 +++++++++++++++++++++ 3 files changed, 56 insertions(+), 3 deletions(-) diff --git a/packages/angular/ssr/src/routes/router.ts b/packages/angular/ssr/src/routes/router.ts index 715a56b5753a..f01e9989028e 100644 --- a/packages/angular/ssr/src/routes/router.ts +++ b/packages/angular/ssr/src/routes/router.ts @@ -7,7 +7,7 @@ */ import { AngularAppManifest } from '../manifest'; -import { stripIndexHtmlFromURL } from '../utils/url'; +import { stripIndexHtmlFromURL, stripMatrixParams } from '../utils/url'; import { extractRoutesAndCreateRouteTree } from './ng-routes'; import { RouteTree, RouteTreeNodeMetadata } from './route-tree'; @@ -85,8 +85,10 @@ export class ServerRouter { match(url: URL): RouteTreeNodeMetadata | undefined { // Strip 'index.html' from URL if present. // A request to `http://www.example.com/page/index.html` will render the Angular route corresponding to `http://www.example.com/page`. - const { pathname } = stripIndexHtmlFromURL(url); + let { pathname } = stripIndexHtmlFromURL(url); + pathname = stripMatrixParams(pathname); + pathname = decodeURIComponent(pathname); - return this.routeTree.match(decodeURIComponent(pathname)); + return this.routeTree.match(pathname); } } diff --git a/packages/angular/ssr/src/utils/url.ts b/packages/angular/ssr/src/utils/url.ts index 9d42ddd6db00..9b5edede7f8e 100644 --- a/packages/angular/ssr/src/utils/url.ts +++ b/packages/angular/ssr/src/utils/url.ts @@ -196,3 +196,27 @@ export function buildPathWithParams(toPath: string, fromPath: string): string { return joinUrlParts(...resolvedParts); } + +const MATRIX_PARAMS_REGEX = /;[^/]+/g; + +/** + * Removes Angular matrix parameters from a given URL path. + * + * This function takes a URL path string and removes any matrix parameters. + * Matrix parameters are parts of a URL segment that start with a semicolon `;`. + * + * @param pathname - The URL path to remove matrix parameters from. + * @returns The URL path with matrix parameters removed. + * + * @example + * ```ts + * stripMatrixParams('/path;param=value'); // returns '/path' + * stripMatrixParams('/path;param=value/to;p=1/resource'); // returns '/path/to/resource' + * stripMatrixParams('/path/to/resource'); // returns '/path/to/resource' + * ``` + */ +export function stripMatrixParams(pathname: string): string { + // Use a regular expression to remove matrix parameters. + // This regex finds all occurrences of a semicolon followed by any characters + return pathname.includes(';') ? pathname.replace(MATRIX_PARAMS_REGEX, '') : pathname; +} diff --git a/packages/angular/ssr/test/utils/url_spec.ts b/packages/angular/ssr/test/utils/url_spec.ts index b6fcd4e7e767..9a7a7cb3ad49 100644 --- a/packages/angular/ssr/test/utils/url_spec.ts +++ b/packages/angular/ssr/test/utils/url_spec.ts @@ -13,6 +13,7 @@ import { joinUrlParts, stripIndexHtmlFromURL, stripLeadingSlash, + stripMatrixParams, stripTrailingSlash, } from '../../src/utils/url'; @@ -181,4 +182,30 @@ describe('URL Utils', () => { }).toThrowError(`Invalid toPath: The string must start with a '/'. Received: 'details'`); }); }); + + describe('stripMatrixParams', () => { + it('should remove a single matrix parameter', () => { + expect(stripMatrixParams('/path;param=value')).toBe('/path'); + }); + + it('should remove multiple matrix parameters in the same segment', () => { + expect(stripMatrixParams('/path;p1=v1;p2=v2')).toBe('/path'); + }); + + it('should remove matrix parameters from multiple segments', () => { + expect(stripMatrixParams('/path;p1=v1/to;p2=v2/resource')).toBe('/path/to/resource'); + }); + + it('should not modify a path without matrix parameters', () => { + expect(stripMatrixParams('/path/to/resource')).toBe('/path/to/resource'); + }); + + it('should handle a root path with matrix parameters', () => { + expect(stripMatrixParams('/;p1=v1')).toBe('/'); + }); + + it('should handle an empty string', () => { + expect(stripMatrixParams('')).toBe(''); + }); + }); }); From 3a124ac199438aa9f41a28dafee3da53903817fb Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 16 Oct 2025 16:40:54 +0000 Subject: [PATCH 183/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 278 +++++++++--------- 11 files changed, 217 insertions(+), 217 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 581366706c5b..f31cf3cc4025 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + - uses: angular/dev-infra/github-actions/branch-manager@c776985eeff8f041f142d85577210976c98a2922 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b4e78369cfd..b79fc8604015 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 0533aac7d140..d649d8ce7bff 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + - uses: angular/dev-infra/github-actions/pull-request-labeling@c776985eeff8f041f142d85577210976c98a2922 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + - uses: angular/dev-infra/github-actions/post-approval-changes@c776985eeff8f041f142d85577210976c98a2922 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 607645f76352..258c3ec30196 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + - uses: angular/dev-infra/github-actions/feature-request@c776985eeff8f041f142d85577210976c98a2922 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 2d48a45014cf..40b7ae54b429 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - 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 09b26c753bfe..fefb06eb7abd 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/linting/licenses@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - 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@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 536edc4d066e..013eb924a223 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42", + commit = "c776985eeff8f041f142d85577210976c98a2922", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 03454a12285b..7f210b244f12 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.4", - "@angular/cdk": "20.2.8", - "@angular/common": "20.3.4", - "@angular/compiler": "20.3.4", - "@angular/compiler-cli": "20.3.4", - "@angular/core": "20.3.4", - "@angular/forms": "20.3.4", - "@angular/localize": "20.3.4", - "@angular/material": "20.2.8", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#2feb4d5082bd3322d64282894b81809c1cf93ca9", - "@angular/platform-browser": "20.3.4", - "@angular/platform-server": "20.3.4", - "@angular/router": "20.3.4", - "@angular/service-worker": "20.3.4", + "@angular/animations": "20.3.5", + "@angular/cdk": "20.2.9", + "@angular/common": "20.3.5", + "@angular/compiler": "20.3.5", + "@angular/compiler-cli": "20.3.5", + "@angular/core": "20.3.5", + "@angular/forms": "20.3.5", + "@angular/localize": "20.3.5", + "@angular/material": "20.2.9", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5cd66227d38bb0feed0989254757ca51077a8607", + "@angular/platform-browser": "20.3.5", + "@angular/platform-server": "20.3.5", + "@angular/router": "20.3.5", + "@angular/service-worker": "20.3.5", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index b54eceb5059a..6dae677a1f24 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.3.4", - "@angular/compiler": "20.3.4", - "@angular/core": "20.3.4", - "@angular/platform-browser": "20.3.4", - "@angular/platform-server": "20.3.4", - "@angular/router": "20.3.4", + "@angular/common": "20.3.5", + "@angular/compiler": "20.3.5", + "@angular/core": "20.3.5", + "@angular/platform-browser": "20.3.5", + "@angular/platform-server": "20.3.5", + "@angular/router": "20.3.5", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 8b8b3da7e77d..ed7bc8f36d75 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.3.4", - "@angular/compiler-cli": "20.3.4", + "@angular/compiler": "20.3.5", + "@angular/compiler-cli": "20.3.5", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b12cb8eaabb..6c13e133a945 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.4 - version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.5 + version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.8 - version: 20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.9 + version: 20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.4 - version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.4 - version: 20.3.4 + specifier: 20.3.5 + version: 20.3.5 '@angular/compiler-cli': - specifier: 20.3.4 - version: 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) + specifier: 20.3.5 + version: 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) '@angular/core': - specifier: 20.3.4 - version: 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.5 + version: 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.4 - version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.4 - version: 20.3.4(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(@angular/compiler@20.3.4) + specifier: 20.3.5 + version: 20.3.5(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(@angular/compiler@20.3.5) '@angular/material': - specifier: 20.2.8 - version: 20.2.8(77988740ae74fb4aaf3ed71e07feeca3) + specifier: 20.2.9 + version: 20.2.9(3796ee0683096188e8ca83296767d96a) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#2feb4d5082bd3322d64282894b81809c1cf93ca9 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5cd66227d38bb0feed0989254757ca51077a8607 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.4 - version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.5 + version: 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.4 - version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.4 - version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.4 - version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(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.3.4 - version: 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.4 - version: 20.3.4 + specifier: 20.3.5 + version: 20.3.5 '@angular/core': - specifier: 20.3.4 - version: 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.5 + version: 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.4 - version: 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.5 + version: 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.4 - version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.4 - version: 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.5 + version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(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.3.4 - version: 20.3.4 + specifier: 20.3.5 + version: 20.3.5 '@angular/compiler-cli': - specifier: 20.3.4 - version: 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) + specifier: 20.3.5 + version: 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.4': - resolution: {integrity: sha512-b+vFsTtMYtOrcZZLXB4BxuErbrLlShFT6khTvkwu/pFK8ri3tasyJGkeKRZJHao5ZsWdZSqV2mRwzg7vphchnA==} + '@angular/animations@20.3.5': + resolution: {integrity: sha512-dlcUHua5PljqzXKNkEPjP7m2VXEJZPFPaaG1t6FDyUbuxsHr+/VEOCIzWunqRDAdO8mmOa9l1MditvGLEWjscg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.4 + '@angular/core': 20.3.5 - '@angular/cdk@20.2.8': - resolution: {integrity: sha512-r2GzcgwkRETKUmFhGfmT+T0RYRcYb/JrpADTnUG3sOkHY+05r7YGkmmXMjUIB0nVERqVuFBM1mKVcIFp9SJDmQ==} + '@angular/cdk@20.2.9': + resolution: {integrity: sha512-rbY1AMz9389WJI29iAjWp4o0QKRQHCrQQUuP0ctNQzh1tgWpwiRLx8N4yabdVdsCA846vPsyKJtBlSNwKMsjJA==} 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.3.4': - resolution: {integrity: sha512-hBQahyiHEAtc30a8hPOuIWcUL7j8189DC0sX4RiBd/wtvzH4Sd3XhguxyZAL6gHgNZEQ0nKy0uAfvWB/79GChQ==} + '@angular/common@20.3.5': + resolution: {integrity: sha512-Zc4G5UNyoeIhPIRFY+qApeoUwXnw3u1+UJlcKE8xLR+tkaMsJ4Lb0TvL/9KJG7PDeaa65osxsSgLL5L/1sWblw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.4 + '@angular/core': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.4': - resolution: {integrity: sha512-FwEv+QM9tEMXDMd2V+j82VLOjJVUrI7ENz/LJa2p/YEGVJQkT3HVca5qJj+8I+7bfPEY/d46R/cmjjqMqUcYdg==} + '@angular/compiler-cli@20.3.5': + resolution: {integrity: sha512-vdNWKvpmjiN3Fg3ve3fdptM8oOL73FOgoJaaa0MLCeDCBZKAoG1yCVzftdl4JEcRMoibEaT48pbu/xuHof91Eg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.4 + '@angular/compiler': 20.3.5 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.4': - resolution: {integrity: sha512-ISfEyn5ppWOP2hyZy0/IFEcQOaq5x1mXVZ2CRCxTpWyXYzavj27Ahr3+LQHPVV0uTNovlENyPAUnrzW+gLxXEw==} + '@angular/compiler@20.3.5': + resolution: {integrity: sha512-nnvvMf3MJEfWlBIHJs6+1Od1Ka49zw0WMPvS3e0KXUVnNnUl0ITroe7BZI/QrpyLEsqZkMZqwUI6r79WS2KBzQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.4': - resolution: {integrity: sha512-qLYVXcpSBmsA/9fITB1cT2y37V1Yo3ybWEwvafnbAh8izabrMV0hh+J9Ajh9bPk092T7LS8Xt9eTu0OquBXkbw==} + '@angular/core@20.3.5': + resolution: {integrity: sha512-gZOMTqs91NbOKxZs3r7P7/A6SbTkcG7YHNPoRKe7peY0Baa44QsvjxbxGqw+mBmwamosspBreT/jA0irkf8XKw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.4 + '@angular/compiler': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,74 +1023,74 @@ packages: zone.js: optional: true - '@angular/forms@20.3.4': - resolution: {integrity: sha512-gPbI2iIvVA2jhwjTg7e3j/JqCFIpRSPgzW/wi5q7LrGBm7XKHNzY5xlEVDNvdq+gC4HTius9GOIx9I0i8mjrEw==} + '@angular/forms@20.3.5': + resolution: {integrity: sha512-vMgDxBTFV6qA1vOHiJ49s3EHo3gTp86ignp6laeXULSLsMIpYlLmj/hj3zhK79Me5kRWSaPJ+SOTIgXPshAMAQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.4 - '@angular/core': 20.3.4 - '@angular/platform-browser': 20.3.4 + '@angular/common': 20.3.5 + '@angular/core': 20.3.5 + '@angular/platform-browser': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.4': - resolution: {integrity: sha512-OaHS0qOFdngKX4T4CEi7LYaISY8k2fPbPHoB+Q0MzqqmJpG+OEu8prOB4jMsZKTe5QpZey7opOJQ6nmL+Maa1Q==} + '@angular/localize@20.3.5': + resolution: {integrity: sha512-2OwfKu666BBrhANnfWbAPmNpnC7DXBto/T8f7tGxOi21sr2aACathKcCo/39Sh2S4HFnWmSIysldwEwtS4BDbQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.4 - '@angular/compiler-cli': 20.3.4 + '@angular/compiler': 20.3.5 + '@angular/compiler-cli': 20.3.5 - '@angular/material@20.2.8': - resolution: {integrity: sha512-JexykfKGTM+oepHZVVPRGCJOs1PWVzdvzonSJ3xuchkNeUZPbrGlWb+wZj84RgpjSGj4ktJ1artrVH/yvLPuhw==} + '@angular/material@20.2.9': + resolution: {integrity: sha512-xo/ozyRXCoJMi89XLTJI6fdPKBv2wBngWMiCrtTg23+pHbuyA/kDbk3v62eJkDD1xdhC4auXaIHu4Ddf5zTgSA==} peerDependencies: - '@angular/cdk': 20.2.8 + '@angular/cdk': 20.2.9 '@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/2feb4d5082bd3322d64282894b81809c1cf93ca9': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/2feb4d5082bd3322d64282894b81809c1cf93ca9} - version: 0.0.0-1fd3f8b3fa8d9c438135bc6c5cecacd07920ef42 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607} + version: 0.0.0-c776985eeff8f041f142d85577210976c98a2922 hasBin: true - '@angular/platform-browser@20.3.4': - resolution: {integrity: sha512-8eoHC+vk7scb24qjlpsirkh1Q17uFyWdhl+u92XNjvimtZRY96oDZeFEDPoexPqtKUQcCOpEPbL8P/IbpBsqYQ==} + '@angular/platform-browser@20.3.5': + resolution: {integrity: sha512-qoXZg4p1ux5Bv2eG5P+ySZqlZtfw0pwmufTUjPn6U8HNnmTknQjN10UANRE+9lBWOEWL4m8vcr1KIRbwXnGu4A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.4 - '@angular/common': 20.3.4 - '@angular/core': 20.3.4 + '@angular/animations': 20.3.5 + '@angular/common': 20.3.5 + '@angular/core': 20.3.5 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.4': - resolution: {integrity: sha512-wXe2y0Z9sBlKGYblNTweFWUdzzIpO9VAWSfc3gSJcDWtiuBfec2Vu88aYR1rtA3uCdenMaHeG/BiHNfsvIzWQg==} + '@angular/platform-server@20.3.5': + resolution: {integrity: sha512-KFQ2H7w/qTjx2nIiJQQXpWvZtk+N4oMJZMPdW7NjFVi60bjzZq5ISk7YroiD/HsPIWJXGJCSjDP6NlFLf/GNvw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.4 - '@angular/compiler': 20.3.4 - '@angular/core': 20.3.4 - '@angular/platform-browser': 20.3.4 + '@angular/common': 20.3.5 + '@angular/compiler': 20.3.5 + '@angular/core': 20.3.5 + '@angular/platform-browser': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.4': - resolution: {integrity: sha512-qMVurWXVplYeHBKOWtQFtD+MfwOc0i/VJaFPGdiM5mDlfhtsg3OHcZBbSTmQW02l/4YimF5Ee3+pac279p+g1A==} + '@angular/router@20.3.5': + resolution: {integrity: sha512-xwOEj70N+CUXPUXljWoyNCmdKonlgS7HuUIPK6aAWw6DLUVkmzvrRNxE+qZnY4hxq9C+BQMd8KzbebUuyRBTKg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.4 - '@angular/core': 20.3.4 - '@angular/platform-browser': 20.3.4 + '@angular/common': 20.3.5 + '@angular/core': 20.3.5 + '@angular/platform-browser': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.4': - resolution: {integrity: sha512-+hdQkDMoqQhmmS1hhLeUsn9na7gOS4NxvCg7y7ROEquoS24FhnVFOp9GS2K6PaNHhGVzbrBwBopew9QVRKyMyQ==} + '@angular/service-worker@20.3.5': + resolution: {integrity: sha512-l+EC/igQTm9yegz9o3S9IQXvYTurd2Dn8N0KPLw5Hd91RmqDmrNku0FhVXpILNnq6N+Kd4rcqX4Z0EUiH4uWQA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.4 + '@angular/core': 20.3.5 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -9292,28 +9292,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.4 + '@angular/compiler': 20.3.5 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9327,30 +9327,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.4': + '@angular/compiler@20.3.5': dependencies: tslib: 2.8.1 - '@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.4 + '@angular/compiler': 20.3.5 zone.js: 0.15.1 - '@angular/forms@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.4(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(@angular/compiler@20.3.4)': + '@angular/localize@20.3.5(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(@angular/compiler@20.3.5)': dependencies: - '@angular/compiler': 20.3.4 - '@angular/compiler-cli': 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) + '@angular/compiler': 20.3.5 + '@angular/compiler-cli': 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9358,17 +9358,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.8(77988740ae74fb4aaf3ed71e07feeca3)': + '@angular/material@20.2.9(3796ee0683096188e8ca83296767d96a)': dependencies: - '@angular/cdk': 20.2.8(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(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/2feb4d5082bd3322d64282894b81809c1cf93ca9(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) @@ -9429,35 +9429,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.4)(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.4 - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.5 + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.4(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.4(@angular/animations@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.4(@angular/core@20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.4(@angular/compiler@20.3.4)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -16183,10 +16183,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.4(@angular/compiler@20.3.4)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.4 ajv: 8.17.1 From 5db6d64870c7ce0b883722a07c828946b7d2217d Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 17 Oct 2025 07:40:22 +0000 Subject: [PATCH 184/228] fix(@angular/ssr): ensure server-side navigation triggers a redirect When a navigation occurs on the server-side, such as using `router.navigate`, and the final URL is different from the initial URL that was requested, the server should respond with a redirect. Previously, the initial URL was being read from `router.lastSuccessfulNavigation.initialUrl`, which could be incorrect in scenarios involving server-side navigations, causing the comparison with the final URL to fail and preventing the redirect. This change ensures that the initial URL requested by the browser is used for the comparison, correctly triggering a redirect when necessary. Closes #31482 (cherry picked from commit 9c3a6898e7c50ded6d0b8572ac2346c660b5ad87) --- packages/angular/ssr/src/utils/ng.ts | 22 ++++----- packages/angular/ssr/test/app-engine_spec.ts | 14 ------ packages/angular/ssr/test/app_spec.ts | 49 +++++++++++++++++++- 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index 94abcb5ade28..e38fef05662e 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import { APP_BASE_HREF, PlatformLocation } from '@angular/common'; +import { LocationStrategy } from '@angular/common'; import { ApplicationRef, type PlatformRef, @@ -21,7 +21,7 @@ import { platformServer, ɵrenderInternal as renderInternal, } from '@angular/platform-server'; -import { ActivatedRoute, Router } from '@angular/router'; +import { ActivatedRoute, Router, UrlSerializer } from '@angular/router'; import { Console } from '../console'; import { joinUrlParts, stripIndexHtmlFromURL } from './url'; @@ -60,12 +60,12 @@ export async function renderAngular( serverContext: string, ): Promise<{ hasNavigationError: boolean; redirectTo?: string; content: () => Promise }> { // A request to `http://www.example.com/page/index.html` will render the Angular route corresponding to `http://www.example.com/page`. - const urlToRender = stripIndexHtmlFromURL(url).toString(); + const urlToRender = stripIndexHtmlFromURL(url); const platformRef = platformServer([ { provide: INITIAL_CONFIG, useValue: { - url: urlToRender, + url: urlToRender.href, document: html, }, }, @@ -110,15 +110,13 @@ export async function renderAngular( } else if (lastSuccessfulNavigation?.finalUrl) { hasNavigationError = false; - const { finalUrl, initialUrl } = lastSuccessfulNavigation; - const finalUrlStringified = finalUrl.toString(); + const urlSerializer = envInjector.get(UrlSerializer); + const locationStrategy = envInjector.get(LocationStrategy); + const finalUrlSerialized = urlSerializer.serialize(lastSuccessfulNavigation.finalUrl); + const finalExternalUrl = joinUrlParts(locationStrategy.getBaseHref(), finalUrlSerialized); - if (initialUrl.toString() !== finalUrlStringified) { - const baseHref = - envInjector.get(APP_BASE_HREF, null, { optional: true }) ?? - envInjector.get(PlatformLocation).getBaseHrefFromDOM(); - - redirectTo = joinUrlParts(baseHref, finalUrlStringified); + if (urlToRender.href !== new URL(finalExternalUrl, urlToRender.origin).href) { + redirectTo = finalExternalUrl; } } diff --git a/packages/angular/ssr/test/app-engine_spec.ts b/packages/angular/ssr/test/app-engine_spec.ts index b74244941c95..c8ebbc4446ea 100644 --- a/packages/angular/ssr/test/app-engine_spec.ts +++ b/packages/angular/ssr/test/app-engine_spec.ts @@ -19,20 +19,6 @@ import { RenderMode } from '../src/routes/route-config'; import { setAngularAppTestingManifest } from './testing-utils'; function createEntryPoint(locale: string) { - @Component({ - standalone: true, - selector: `app-ssr-${locale}`, - template: `SSR works ${locale.toUpperCase()}`, - }) - class SSRComponent {} - - @Component({ - standalone: true, - selector: `app-ssg-${locale}`, - template: `SSG works ${locale.toUpperCase()}`, - }) - class SSGComponent {} - return async () => { @Component({ standalone: true, diff --git a/packages/angular/ssr/test/app_spec.ts b/packages/angular/ssr/test/app_spec.ts index bde408ef5ee1..b3ea250cae41 100644 --- a/packages/angular/ssr/test/app_spec.ts +++ b/packages/angular/ssr/test/app_spec.ts @@ -11,7 +11,8 @@ import '@angular/compiler'; /* eslint-enable import/no-unassigned-import */ -import { Component } from '@angular/core'; +import { Component, inject } from '@angular/core'; +import { CanActivateFn, Router } from '@angular/router'; import { AngularServerApp } from '../src/app'; import { RenderMode } from '../src/routes/route-config'; import { setAngularAppTestingManifest } from './testing-utils'; @@ -27,6 +28,31 @@ describe('AngularServerApp', () => { }) class HomeComponent {} + @Component({ + selector: 'app-redirect', + }) + class RedirectComponent { + constructor() { + void inject(Router).navigate([], { + queryParams: { filter: 'test' }, + }); + } + } + + const queryParamAdderGuard: CanActivateFn = (_route, state) => { + const urlTree = inject(Router).parseUrl(state.url); + + if (urlTree.queryParamMap.has('filter')) { + return true; + } + + urlTree.queryParams = { + filter: 'test', + }; + + return urlTree; + }; + setAngularAppTestingManifest( [ { path: 'home', component: HomeComponent }, @@ -34,7 +60,14 @@ describe('AngularServerApp', () => { { path: 'home-ssg', component: HomeComponent }, { path: 'page-with-headers', component: HomeComponent }, { path: 'page-with-status', component: HomeComponent }, + { path: 'redirect', redirectTo: 'home' }, + { path: 'redirect-via-navigate', component: RedirectComponent }, + { + path: 'redirect-via-guard', + canActivate: [queryParamAdderGuard], + component: HomeComponent, + }, { path: 'redirect/relative', redirectTo: 'home' }, { path: 'redirect/:param/relative', redirectTo: 'home' }, { path: 'redirect/absolute', redirectTo: '/home' }, @@ -260,11 +293,23 @@ describe('AngularServerApp', () => { }); describe('SSR pages', () => { - it('returns a 302 status and redirects to the correct location when redirectTo is a function', async () => { + it('returns a 302 status and redirects to the correct location when `redirectTo` is a function', async () => { const response = await app.handle(new Request('http://localhost/redirect-to-function')); expect(response?.headers.get('location')).toBe('/home'); expect(response?.status).toBe(302); }); + + it('returns a 302 status and redirects to the correct location when `router.navigate` is used', async () => { + const response = await app.handle(new Request('http://localhost/redirect-via-navigate')); + expect(response?.headers.get('location')).toBe('/redirect-via-navigate?filter=test'); + expect(response?.status).toBe(302); + }); + + it('returns a 302 status and redirects to the correct location when `urlTree` is updated in a guard', async () => { + const response = await app.handle(new Request('http://localhost/redirect-via-guard')); + expect(response?.headers.get('location')).toBe('/redirect-via-guard?filter=test'); + expect(response?.status).toBe(302); + }); }); }); }); From ec2eb53e19e12fc0175097c3a8eeb40d3f54e77e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 16 Oct 2025 20:37:30 +0000 Subject: [PATCH 185/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 ++-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 24 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 279 +++++++++--------- 11 files changed, 218 insertions(+), 213 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f31cf3cc4025..4b9a6d5e67fb 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@c776985eeff8f041f142d85577210976c98a2922 + - uses: angular/dev-infra/github-actions/branch-manager@aa7eafce1e85690dadfd8019d44ceadfb94851b8 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b79fc8604015..b5eeb35a644d 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d649d8ce7bff..c0463d526f35 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@c776985eeff8f041f142d85577210976c98a2922 + - uses: angular/dev-infra/github-actions/pull-request-labeling@aa7eafce1e85690dadfd8019d44ceadfb94851b8 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@c776985eeff8f041f142d85577210976c98a2922 + - uses: angular/dev-infra/github-actions/post-approval-changes@aa7eafce1e85690dadfd8019d44ceadfb94851b8 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 258c3ec30196..d0133e079eb2 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@c776985eeff8f041f142d85577210976c98a2922 + - uses: angular/dev-infra/github-actions/feature-request@aa7eafce1e85690dadfd8019d44ceadfb94851b8 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 40b7ae54b429..51a1ade9c7b9 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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 fefb06eb7abd..7a1ed85f5651 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/linting/licenses@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - 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@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c776985eeff8f041f142d85577210976c98a2922 + uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 013eb924a223..0c2093662ece 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "c776985eeff8f041f142d85577210976c98a2922", + commit = "aa7eafce1e85690dadfd8019d44ceadfb94851b8", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 7f210b244f12..22552633dbc0 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.5", + "@angular/animations": "20.3.6", "@angular/cdk": "20.2.9", - "@angular/common": "20.3.5", - "@angular/compiler": "20.3.5", - "@angular/compiler-cli": "20.3.5", - "@angular/core": "20.3.5", - "@angular/forms": "20.3.5", - "@angular/localize": "20.3.5", + "@angular/common": "20.3.6", + "@angular/compiler": "20.3.6", + "@angular/compiler-cli": "20.3.6", + "@angular/core": "20.3.6", + "@angular/forms": "20.3.6", + "@angular/localize": "20.3.6", "@angular/material": "20.2.9", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#5cd66227d38bb0feed0989254757ca51077a8607", - "@angular/platform-browser": "20.3.5", - "@angular/platform-server": "20.3.5", - "@angular/router": "20.3.5", - "@angular/service-worker": "20.3.5", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#30d1e560545a188ecaeb868b901a5055370d1c88", + "@angular/platform-browser": "20.3.6", + "@angular/platform-server": "20.3.6", + "@angular/router": "20.3.6", + "@angular/service-worker": "20.3.6", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index 6dae677a1f24..f501294ddc4c 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.3.5", - "@angular/compiler": "20.3.5", - "@angular/core": "20.3.5", - "@angular/platform-browser": "20.3.5", - "@angular/platform-server": "20.3.5", - "@angular/router": "20.3.5", + "@angular/common": "20.3.6", + "@angular/compiler": "20.3.6", + "@angular/core": "20.3.6", + "@angular/platform-browser": "20.3.6", + "@angular/platform-server": "20.3.6", + "@angular/router": "20.3.6", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index ed7bc8f36d75..4971250018fd 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.3.5", - "@angular/compiler-cli": "20.3.5", + "@angular/compiler": "20.3.6", + "@angular/compiler-cli": "20.3.6", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c13e133a945..50681d49c9c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.5 - version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.6 + version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': specifier: 20.2.9 - version: 20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.5 - version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.5 - version: 20.3.5 + specifier: 20.3.6 + version: 20.3.6 '@angular/compiler-cli': - specifier: 20.3.5 - version: 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) + specifier: 20.3.6 + version: 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) '@angular/core': - specifier: 20.3.5 - version: 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.6 + version: 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.5 - version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.5 - version: 20.3.5(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(@angular/compiler@20.3.5) + specifier: 20.3.6 + version: 20.3.6(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(@angular/compiler@20.3.6) '@angular/material': specifier: 20.2.9 - version: 20.2.9(3796ee0683096188e8ca83296767d96a) + version: 20.2.9(2a95e28ac5632fb7b160d9783a0bce26) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#5cd66227d38bb0feed0989254757ca51077a8607 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#30d1e560545a188ecaeb868b901a5055370d1c88 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.5 - version: 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.6 + version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.5 - version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.5 - version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.5 - version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(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.3.5 - version: 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.5 - version: 20.3.5 + specifier: 20.3.6 + version: 20.3.6 '@angular/core': - specifier: 20.3.5 - version: 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.6 + version: 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.5 - version: 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.6 + version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.5 - version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.5 - version: 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.6 + version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(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.3.5 - version: 20.3.5 + specifier: 20.3.6 + version: 20.3.6 '@angular/compiler-cli': - specifier: 20.3.5 - version: 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) + specifier: 20.3.6 + version: 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,11 +975,11 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.5': - resolution: {integrity: sha512-dlcUHua5PljqzXKNkEPjP7m2VXEJZPFPaaG1t6FDyUbuxsHr+/VEOCIzWunqRDAdO8mmOa9l1MditvGLEWjscg==} + '@angular/animations@20.3.6': + resolution: {integrity: sha512-qNaVvEOKvigoCQMg0ABnq44HhiHqKD4WN3KoUcXneklcMYCzFE5nuQxKylfWzCRiI5XqiJ9pqiL1m2D7o+Vdiw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.5 + '@angular/core': 20.3.6 '@angular/cdk@20.2.9': resolution: {integrity: sha512-rbY1AMz9389WJI29iAjWp4o0QKRQHCrQQUuP0ctNQzh1tgWpwiRLx8N4yabdVdsCA846vPsyKJtBlSNwKMsjJA==} @@ -988,33 +988,33 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.3.5': - resolution: {integrity: sha512-Zc4G5UNyoeIhPIRFY+qApeoUwXnw3u1+UJlcKE8xLR+tkaMsJ4Lb0TvL/9KJG7PDeaa65osxsSgLL5L/1sWblw==} + '@angular/common@20.3.6': + resolution: {integrity: sha512-+gHMuFe0wz4f+vfGZ2q+fSQSYaY7KlN7QdDrFqLnA7H2sythzhXvRbXEtp4DkPjihh9gupXg2MeLh1ROy5AfSw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.5 + '@angular/core': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.5': - resolution: {integrity: sha512-vdNWKvpmjiN3Fg3ve3fdptM8oOL73FOgoJaaa0MLCeDCBZKAoG1yCVzftdl4JEcRMoibEaT48pbu/xuHof91Eg==} + '@angular/compiler-cli@20.3.6': + resolution: {integrity: sha512-VOFRBx9fBt2jW9I8qD23fwGeKxBI8JssJBAMqnFPl3k59VJWHQi6LlXZCLCBNdfwflTJdKeRvdgT51Q0k6tnFQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.5 + '@angular/compiler': 20.3.6 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.5': - resolution: {integrity: sha512-nnvvMf3MJEfWlBIHJs6+1Od1Ka49zw0WMPvS3e0KXUVnNnUl0ITroe7BZI/QrpyLEsqZkMZqwUI6r79WS2KBzQ==} + '@angular/compiler@20.3.6': + resolution: {integrity: sha512-OdjXBsAsnn7qiW6fSHClwn9XwjVxhtO9+RbDc6Mf+YPCnJq0s8T78H2fc8VdJFp/Rs+tMZcwwjd9VZPm8+2XWA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.5': - resolution: {integrity: sha512-gZOMTqs91NbOKxZs3r7P7/A6SbTkcG7YHNPoRKe7peY0Baa44QsvjxbxGqw+mBmwamosspBreT/jA0irkf8XKw==} + '@angular/core@20.3.6': + resolution: {integrity: sha512-sDURQWnjwE4Y750u/5qwkZEYMoI4CrKghnx4aKulxCnohR3//C78wvz6p8MtCuqYfzGkdQZDYFg8tgAz17qgPw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.5 + '@angular/compiler': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,22 +1023,22 @@ packages: zone.js: optional: true - '@angular/forms@20.3.5': - resolution: {integrity: sha512-vMgDxBTFV6qA1vOHiJ49s3EHo3gTp86ignp6laeXULSLsMIpYlLmj/hj3zhK79Me5kRWSaPJ+SOTIgXPshAMAQ==} + '@angular/forms@20.3.6': + resolution: {integrity: sha512-tBGo/LBtCtSrClMY4DTm/3UiSjqLLMEYXS/4E0nW1mFDv7ulKnaAQB+KbfBmmTHYxlKLs+SxjKv6GoydMPSurA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.5 - '@angular/core': 20.3.5 - '@angular/platform-browser': 20.3.5 + '@angular/common': 20.3.6 + '@angular/core': 20.3.6 + '@angular/platform-browser': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.5': - resolution: {integrity: sha512-2OwfKu666BBrhANnfWbAPmNpnC7DXBto/T8f7tGxOi21sr2aACathKcCo/39Sh2S4HFnWmSIysldwEwtS4BDbQ==} + '@angular/localize@20.3.6': + resolution: {integrity: sha512-isOHiGYHSK+ySK8ry21PGO3jpJpF90E3J2BZ+LUhzpi1SzFBguEVg7j8fvbCLodiwweOnuAiKEHO0F3WpfCQ9Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.5 - '@angular/compiler-cli': 20.3.5 + '@angular/compiler': 20.3.6 + '@angular/compiler-cli': 20.3.6 '@angular/material@20.2.9': resolution: {integrity: sha512-xo/ozyRXCoJMi89XLTJI6fdPKBv2wBngWMiCrtTg23+pHbuyA/kDbk3v62eJkDD1xdhC4auXaIHu4Ddf5zTgSA==} @@ -1050,47 +1050,47 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/5cd66227d38bb0feed0989254757ca51077a8607} - version: 0.0.0-c776985eeff8f041f142d85577210976c98a2922 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88} + version: 0.0.0-aa7eafce1e85690dadfd8019d44ceadfb94851b8 hasBin: true - '@angular/platform-browser@20.3.5': - resolution: {integrity: sha512-qoXZg4p1ux5Bv2eG5P+ySZqlZtfw0pwmufTUjPn6U8HNnmTknQjN10UANRE+9lBWOEWL4m8vcr1KIRbwXnGu4A==} + '@angular/platform-browser@20.3.6': + resolution: {integrity: sha512-gFp1yd+HtRN8XdpMatRLO5w6FLIzsnF31lD2Duo4BUTCoMAMdfaNT6FtcvNdKu7ANo27Ke26fxEEE2bh6FU98A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.5 - '@angular/common': 20.3.5 - '@angular/core': 20.3.5 + '@angular/animations': 20.3.6 + '@angular/common': 20.3.6 + '@angular/core': 20.3.6 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.5': - resolution: {integrity: sha512-KFQ2H7w/qTjx2nIiJQQXpWvZtk+N4oMJZMPdW7NjFVi60bjzZq5ISk7YroiD/HsPIWJXGJCSjDP6NlFLf/GNvw==} + '@angular/platform-server@20.3.6': + resolution: {integrity: sha512-fWF20pZYt8+4ZbNEwQsSgvBc11g8QWiVW7a0ybPvn7fy4LsTLWPzpolGK54k3FqWTQsZfzt+tVcNS709FPETfw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.5 - '@angular/compiler': 20.3.5 - '@angular/core': 20.3.5 - '@angular/platform-browser': 20.3.5 + '@angular/common': 20.3.6 + '@angular/compiler': 20.3.6 + '@angular/core': 20.3.6 + '@angular/platform-browser': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.5': - resolution: {integrity: sha512-xwOEj70N+CUXPUXljWoyNCmdKonlgS7HuUIPK6aAWw6DLUVkmzvrRNxE+qZnY4hxq9C+BQMd8KzbebUuyRBTKg==} + '@angular/router@20.3.6': + resolution: {integrity: sha512-fSAYOR9nKpH5PoBYFNdII3nAFl2maUrYiISU33CnGwb7J7Q0s09k231c/P5tVN4URi+jdADVwiBI8cIYk8SVrg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.5 - '@angular/core': 20.3.5 - '@angular/platform-browser': 20.3.5 + '@angular/common': 20.3.6 + '@angular/core': 20.3.6 + '@angular/platform-browser': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.5': - resolution: {integrity: sha512-l+EC/igQTm9yegz9o3S9IQXvYTurd2Dn8N0KPLw5Hd91RmqDmrNku0FhVXpILNnq6N+Kd4rcqX4Z0EUiH4uWQA==} + '@angular/service-worker@20.3.6': + resolution: {integrity: sha512-utHJCoEO4EKH372BSMnNbcR96yDVkUeV7xcJb+cw9ruTOxGvCG/DUWR1h64xk3Ns6nvFmggTnIVgnBDn+92VpQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.5 + '@angular/core': 20.3.6 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -2113,8 +2113,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.24.0': - resolution: {integrity: sha512-e3jZF9Dx3dDaDCzygdMuYByHI2xJZ0PaD3r2fRgHZe2IOwBnmJ/Tu5Lt/nefTCxqr1ZnbcbQK9T13d8U/9UMWg==} + '@google/genai@1.25.0': + resolution: {integrity: sha512-IBNyel/umavam98SQUfvQSvh/Rp6Ql2fysQLqPyWZr5K8d768X9AO+JZU4o+3qvFDUBA0dVYUSkxyYonVcICvA==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -3488,6 +3488,9 @@ packages: '@types/jasmine-reporters@2.5.3': resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==} + '@types/jasmine@5.1.10': + resolution: {integrity: sha512-ctILpOSFD58PTyGwr400GadefIHPqdWQ8VlZI9D65USOWR/aIw8dkDAw17KPCu/Wn+e+r9BWpPtmuB5T/pP8ng==} + '@types/jasmine@5.1.9': resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} @@ -9292,28 +9295,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.5 + '@angular/compiler': 20.3.6 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9327,30 +9330,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.5': + '@angular/compiler@20.3.6': dependencies: tslib: 2.8.1 - '@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.5 + '@angular/compiler': 20.3.6 zone.js: 0.15.1 - '@angular/forms@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.5(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(@angular/compiler@20.3.5)': + '@angular/localize@20.3.6(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(@angular/compiler@20.3.6)': dependencies: - '@angular/compiler': 20.3.5 - '@angular/compiler-cli': 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) + '@angular/compiler': 20.3.6 + '@angular/compiler-cli': 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9358,21 +9361,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.9(3796ee0683096188e8ca83296767d96a)': + '@angular/material@20.2.9(2a95e28ac5632fb7b160d9783a0bce26)': dependencies: - '@angular/cdk': 20.2.9(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(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/5cd66227d38bb0feed0989254757ca51077a8607(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.24.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@google/genai': 1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.9.0(@types/node@24.7.2) '@inquirer/type': 3.0.9(@types/node@24.7.2) '@octokit/auth-app': 8.1.1 @@ -9391,7 +9394,7 @@ snapshots: '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 - '@types/jasmine': 5.1.9 + '@types/jasmine': 5.1.10 '@types/node': 24.7.2 '@types/semver': 7.7.1 '@types/which': 3.0.4 @@ -9429,35 +9432,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.5)(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.5 - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.6 + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.5(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.5(@angular/animations@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.5(@angular/core@20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.5(@angular/compiler@20.3.5)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -10707,7 +10710,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.24.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -11991,6 +11994,8 @@ snapshots: dependencies: '@types/jasmine': 5.1.9 + '@types/jasmine@5.1.10': {} + '@types/jasmine@5.1.9': {} '@types/json-schema@7.0.15': {} @@ -16183,10 +16188,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.5(@angular/compiler@20.3.5)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.4 ajv: 8.17.1 From 8cdda111cc0b343aa5eb6a7ccbad93302a543226 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:50:48 +0000 Subject: [PATCH 186/228] fix(@angular/build): resolve Angular locale data namespace in esbuild A transient error can occur during `ng serve` when Vite's dependency pre-bundling is triggered for Angular locale data, showing an error like `[vite] (ssr) Error when evaluating SSR module...: There is a new version of the pre-bundle...`. Previously, the `angular:locale/data:` namespace was left unresolved by the build process for the dev server. This caused Vite to treat the namespace as a new dependency, triggering a pre-bundling step that led to the error. With this change, esbuild now resolves the `angular:locale/data:` namespace and replaces it with the direct module import path. While the module is still treated as an external dependency, providing the explicit path prevents Vite from unnecessarily triggering a new pre-bundling phase. This resolves the transient error. Closes #31498 (cherry picked from commit c0c05174889967ba6e623ba40337f44ed1a1a219) --- .../src/builders/dev-server/vite-server.ts | 2 - .../src/tools/esbuild/i18n-locale-plugin.ts | 53 ++++++++++----- .../tools/vite/plugins/i18n-locale-plugin.ts | 64 ------------------- .../build/src/tools/vite/plugins/index.ts | 1 - 4 files changed, 36 insertions(+), 84 deletions(-) delete mode 100644 packages/angular/build/src/tools/vite/plugins/i18n-locale-plugin.ts diff --git a/packages/angular/build/src/builders/dev-server/vite-server.ts b/packages/angular/build/src/builders/dev-server/vite-server.ts index d0cf5f6738ba..8000af9990ac 100644 --- a/packages/angular/build/src/builders/dev-server/vite-server.ts +++ b/packages/angular/build/src/builders/dev-server/vite-server.ts @@ -17,7 +17,6 @@ import type { Connect, InlineConfig, ViteDevServer } from 'vite'; import type { ComponentStyleRecord } from '../../tools/vite/middlewares'; import { ServerSsrMode, - createAngularLocaleDataPlugin, createAngularMemoryPlugin, createAngularSetupMiddlewaresPlugin, createAngularSsrTransformPlugin, @@ -909,7 +908,6 @@ export async function setupServer( }), }, plugins: [ - createAngularLocaleDataPlugin(), createAngularSetupMiddlewaresPlugin({ outputFiles, assets, diff --git a/packages/angular/build/src/tools/esbuild/i18n-locale-plugin.ts b/packages/angular/build/src/tools/esbuild/i18n-locale-plugin.ts index 30f4540dc3a8..ae94b62ca16d 100644 --- a/packages/angular/build/src/tools/esbuild/i18n-locale-plugin.ts +++ b/packages/angular/build/src/tools/esbuild/i18n-locale-plugin.ts @@ -6,7 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ -import type { Plugin } from 'esbuild'; +import type { Plugin, ResolveResult } from 'esbuild'; +import { createRequire } from 'node:module'; /** * The internal namespace used by generated locale import statements and Angular locale data plugin. @@ -27,17 +28,6 @@ export function createAngularLocaleDataPlugin(): Plugin { return { name: 'angular-locale-data', setup(build): void { - // If packages are configured to be external then leave the original angular locale import path. - // This happens when using the development server with caching enabled to allow Vite prebundling to work. - // There currently is no option on the esbuild resolve function to resolve while disabling the option. To - // workaround the inability to resolve the full locale location here, the Vite dev server prebundling also - // contains a plugin to allow the locales to be correctly resolved when prebundling. - // NOTE: If esbuild eventually allows controlling the external package options in a build.resolve call, this - // workaround can be removed. - if (build.initialOptions.packages === 'external') { - return; - } - build.onResolve({ filter: /^angular:locale\/data:/ }, async ({ path }) => { // Extract the locale from the path const rawLocaleTag = path.split(':', 3)[2]; @@ -60,6 +50,7 @@ export function createAngularLocaleDataPlugin(): Plugin { } let exact = true; + let localeRequire: NodeJS.Require | undefined; while (partialLocaleTag) { // Angular embeds the `en`/`en-US` locale into the framework and it does not need to be included again here. // The onLoad hook below for the locale data namespace has an `empty` loader that will prevent inclusion. @@ -73,11 +64,39 @@ export function createAngularLocaleDataPlugin(): Plugin { // Attempt to resolve the locale tag data within the Angular base module location const potentialPath = `${LOCALE_DATA_BASE_MODULE}/${partialLocaleTag}`; - const result = await build.resolve(potentialPath, { - kind: 'import-statement', - resolveDir: build.initialOptions.absWorkingDir, - }); - if (result.path) { + + // If packages are configured to be external then leave the original angular locale import path. + // This happens when using the development server with caching enabled to allow Vite prebundling to work. + // There currently is no option on the esbuild resolve function to resolve while disabling the option. + // NOTE: If esbuild eventually allows controlling the external package options in a build.resolve call, this + // workaround can be removed. + let result: ResolveResult | undefined; + const { packages, absWorkingDir } = build.initialOptions; + if (packages === 'external' && absWorkingDir) { + localeRequire ??= createRequire(absWorkingDir + '/'); + + try { + localeRequire.resolve(potentialPath); + + result = { + errors: [], + warnings: [], + external: true, + sideEffects: true, + namespace: '', + suffix: '', + pluginData: undefined, + path: potentialPath, + }; + } catch {} + } else { + result = await build.resolve(potentialPath, { + kind: 'import-statement', + resolveDir: absWorkingDir, + }); + } + + if (result?.path) { if (exact) { return result; } else { diff --git a/packages/angular/build/src/tools/vite/plugins/i18n-locale-plugin.ts b/packages/angular/build/src/tools/vite/plugins/i18n-locale-plugin.ts deleted file mode 100644 index 5cf3762245a5..000000000000 --- a/packages/angular/build/src/tools/vite/plugins/i18n-locale-plugin.ts +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import type { Plugin } from 'vite'; - -/** - * The base module location used to search for locale specific data. - */ -const LOCALE_DATA_BASE_MODULE = '@angular/common/locales/global'; - -/** - * Creates a Vite plugin that resolves Angular locale data files from `@angular/common`. - * - * @returns A Vite plugin. - */ -export function createAngularLocaleDataPlugin(): Plugin { - return { - name: 'angular-locale-data', - enforce: 'pre', - async resolveId(source) { - if (!source.startsWith('angular:locale/data:')) { - return; - } - - // Extract the locale from the path - const originalLocale = source.split(':', 3)[2]; - - // Remove any private subtags since these will never match - let partialLocale = originalLocale.replace(/-x(-[a-zA-Z0-9]{1,8})+$/, ''); - - let exact = true; - while (partialLocale) { - const potentialPath = `${LOCALE_DATA_BASE_MODULE}/${partialLocale}`; - - const result = await this.resolve(potentialPath); - if (result) { - if (!exact) { - this.warn( - `Locale data for '${originalLocale}' cannot be found. Using locale data for '${partialLocale}'.`, - ); - } - - return result; - } - - // Remove the last subtag and try again with a less specific locale - const parts = partialLocale.split('-'); - partialLocale = parts.slice(0, -1).join('-'); - exact = false; - // The locales "en" and "en-US" are considered exact to retain existing behavior - if (originalLocale === 'en-US' && partialLocale === 'en') { - exact = true; - } - } - - return null; - }, - }; -} diff --git a/packages/angular/build/src/tools/vite/plugins/index.ts b/packages/angular/build/src/tools/vite/plugins/index.ts index 50a6ab6aa7c9..ef697aa7395a 100644 --- a/packages/angular/build/src/tools/vite/plugins/index.ts +++ b/packages/angular/build/src/tools/vite/plugins/index.ts @@ -7,7 +7,6 @@ */ export { createAngularMemoryPlugin } from './angular-memory-plugin'; -export { createAngularLocaleDataPlugin } from './i18n-locale-plugin'; export { createRemoveIdPrefixPlugin } from './id-prefix-plugin'; export { createAngularSetupMiddlewaresPlugin, ServerSsrMode } from './setup-middlewares-plugin'; export { createAngularSsrTransformPlugin } from './ssr-transform-plugin'; From 8c6b3e70a8bd468779690c1d43c7a6304ec12239 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:40:47 +0000 Subject: [PATCH 187/228] refactor(@angular/ssr): simplify redirect URL determination The logic to determine the final URL for server-side rendering redirects is simplified. Previously, it used LocationStrategy and UrlSerializer to construct the final URL. This is replaced by using PlatformLocation to directly get the pathname, search, and hash. This change removes unnecessary complexity and dependencies, making the code easier to understand and maintain. (cherry picked from commit 663908564f2036e86ed82781c230959e3c6fe597) --- packages/angular/ssr/src/utils/ng.ts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index e38fef05662e..44f17781be56 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import { LocationStrategy } from '@angular/common'; +import { PlatformLocation } from '@angular/common'; import { ApplicationRef, type PlatformRef, @@ -21,9 +21,9 @@ import { platformServer, ɵrenderInternal as renderInternal, } from '@angular/platform-server'; -import { ActivatedRoute, Router, UrlSerializer } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { Console } from '../console'; -import { joinUrlParts, stripIndexHtmlFromURL } from './url'; +import { stripIndexHtmlFromURL, stripTrailingSlash } from './url'; /** * Represents the bootstrap mechanism for an Angular application. @@ -107,16 +107,13 @@ export async function renderAngular( if (!routerIsProvided) { hasNavigationError = false; - } else if (lastSuccessfulNavigation?.finalUrl) { + } else if (lastSuccessfulNavigation) { hasNavigationError = false; + const { pathname, search, hash } = envInjector.get(PlatformLocation); + const finalUrl = [stripTrailingSlash(pathname), search, hash].join(''); - const urlSerializer = envInjector.get(UrlSerializer); - const locationStrategy = envInjector.get(LocationStrategy); - const finalUrlSerialized = urlSerializer.serialize(lastSuccessfulNavigation.finalUrl); - const finalExternalUrl = joinUrlParts(locationStrategy.getBaseHref(), finalUrlSerialized); - - if (urlToRender.href !== new URL(finalExternalUrl, urlToRender.origin).href) { - redirectTo = finalExternalUrl; + if (urlToRender.href !== new URL(finalUrl, urlToRender.origin).href) { + redirectTo = finalUrl; } } From d09faf1142a9a79be4cb1dedc96534df8112057a Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 17 Oct 2025 15:06:29 +0000 Subject: [PATCH 188/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 324 +++++++++--------- 9 files changed, 219 insertions(+), 219 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 4b9a6d5e67fb..395e48eddb2a 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + - uses: angular/dev-infra/github-actions/branch-manager@a613c67d98163635746ce32a72fb9aa4f1e9c6cc with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b5eeb35a644d..c154d6f681e8 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index c0463d526f35..4727b8d95fc3 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + - uses: angular/dev-infra/github-actions/pull-request-labeling@a613c67d98163635746ce32a72fb9aa4f1e9c6cc 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + - uses: angular/dev-infra/github-actions/post-approval-changes@a613c67d98163635746ce32a72fb9aa4f1e9c6cc with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index d0133e079eb2..342bc1d3298f 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + - uses: angular/dev-infra/github-actions/feature-request@a613c67d98163635746ce32a72fb9aa4f1e9c6cc with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 51a1ade9c7b9..7885d41f27cd 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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 7a1ed85f5651..a8aaea7f7160 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/linting/licenses@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - 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@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@aa7eafce1e85690dadfd8019d44ceadfb94851b8 + uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 0c2093662ece..adf9c324c8eb 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "aa7eafce1e85690dadfd8019d44ceadfb94851b8", + commit = "a613c67d98163635746ce32a72fb9aa4f1e9c6cc", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 22552633dbc0..87bb4548cf6b 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.6", "@angular/localize": "20.3.6", "@angular/material": "20.2.9", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#30d1e560545a188ecaeb868b901a5055370d1c88", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#53dcff1a283d75255b9950472c37a571cc35ee28", "@angular/platform-browser": "20.3.6", "@angular/platform-server": "20.3.6", "@angular/router": "20.3.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 50681d49c9c8..0ced8fcdac43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.9 version: 20.2.9(2a95e28ac5632fb7b160d9783a0bce26) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#30d1e560545a188ecaeb868b901a5055370d1c88 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#53dcff1a283d75255b9950472c37a571cc35ee28 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.6 version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.7.2) + version: 5.1.14(@types/node@24.8.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.5 - version: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.7.2) + version: 7.8.2(@types/node@24.8.0) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.2))(@types/node@24.7.2)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.0))(@types/node@24.8.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.7.2) + version: 7.8.2(@types/node@24.8.0) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88} - version: 0.0.0-aa7eafce1e85690dadfd8019d44ceadfb94851b8 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28} + version: 0.0.0-a613c67d98163635746ce32a72fb9aa4f1e9c6cc hasBin: true '@angular/platform-browser@20.3.6': @@ -3488,8 +3488,8 @@ packages: '@types/jasmine-reporters@2.5.3': resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==} - '@types/jasmine@5.1.10': - resolution: {integrity: sha512-ctILpOSFD58PTyGwr400GadefIHPqdWQ8VlZI9D65USOWR/aIw8dkDAw17KPCu/Wn+e+r9BWpPtmuB5T/pP8ng==} + '@types/jasmine@5.1.11': + resolution: {integrity: sha512-eAij9lMAsosuA8cvRcqw7p2vO+LUraktQDmOUFx2jAnya8NUchr3DryHksfhZbRzU83vzNUSZhlk1cFdoePxwA==} '@types/jasmine@5.1.9': resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} @@ -3536,8 +3536,8 @@ packages: '@types/node@22.18.10': resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} - '@types/node@24.7.2': - resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} + '@types/node@24.8.0': + resolution: {integrity: sha512-5x08bUtU8hfboMTrJ7mEO4CpepS9yBwAqcL52y86SWNmbPX8LVbNs3EP4cNrIZgdjk2NAlP2ahNihozpoZIxSg==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -9371,13 +9371,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/30d1e560545a188ecaeb868b901a5055370d1c88(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.9.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/prompts': 7.9.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) '@octokit/auth-app': 8.1.1 '@octokit/core': 7.0.5 '@octokit/graphql': 9.0.2 @@ -9394,8 +9394,8 @@ snapshots: '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 - '@types/jasmine': 5.1.10 - '@types/node': 24.7.2 + '@types/jasmine': 5.1.11 + '@types/node': 24.8.0 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -10763,244 +10763,244 @@ snapshots: '@inquirer/ansi@1.0.1': {} - '@inquirer/checkbox@4.2.4(@types/node@24.7.2)': + '@inquirer/checkbox@4.2.4(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/checkbox@4.3.0(@types/node@24.7.2)': + '@inquirer/checkbox@4.3.0(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/confirm@5.1.14(@types/node@24.7.2)': + '@inquirer/confirm@5.1.14(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/confirm@5.1.19(@types/node@24.7.2)': + '@inquirer/confirm@5.1.19(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/core@10.2.2(@types/node@24.7.2)': + '@inquirer/core@10.2.2(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.8.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/core@10.3.0(@types/node@24.7.2)': + '@inquirer/core@10.3.0(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.1 '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.8.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/editor@4.2.20(@types/node@24.7.2)': + '@inquirer/editor@4.2.20(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/external-editor': 1.0.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/external-editor': 1.0.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/editor@4.2.21(@types/node@24.7.2)': + '@inquirer/editor@4.2.21(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/external-editor': 1.0.2(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/external-editor': 1.0.2(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/expand@4.0.20(@types/node@24.7.2)': + '@inquirer/expand@4.0.20(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/expand@4.0.21(@types/node@24.7.2)': + '@inquirer/expand@4.0.21(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/external-editor@1.0.2(@types/node@24.7.2)': + '@inquirer/external-editor@1.0.2(@types/node@24.8.0)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 '@inquirer/figures@1.0.13': {} '@inquirer/figures@1.0.14': {} - '@inquirer/input@4.2.4(@types/node@24.7.2)': + '@inquirer/input@4.2.4(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/input@4.2.5(@types/node@24.7.2)': + '@inquirer/input@4.2.5(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/number@3.0.20(@types/node@24.7.2)': + '@inquirer/number@3.0.20(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/number@3.0.21(@types/node@24.7.2)': + '@inquirer/number@3.0.21(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/password@4.0.20(@types/node@24.7.2)': + '@inquirer/password@4.0.20(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/password@4.0.21(@types/node@24.7.2)': + '@inquirer/password@4.0.21(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/prompts@7.8.2(@types/node@24.7.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) - '@inquirer/confirm': 5.1.14(@types/node@24.7.2) - '@inquirer/editor': 4.2.20(@types/node@24.7.2) - '@inquirer/expand': 4.0.20(@types/node@24.7.2) - '@inquirer/input': 4.2.4(@types/node@24.7.2) - '@inquirer/number': 3.0.20(@types/node@24.7.2) - '@inquirer/password': 4.0.20(@types/node@24.7.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.7.2) - '@inquirer/search': 3.1.3(@types/node@24.7.2) - '@inquirer/select': 4.3.4(@types/node@24.7.2) + '@types/node': 24.8.0 + + '@inquirer/prompts@7.8.2(@types/node@24.8.0)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.8.0) + '@inquirer/confirm': 5.1.14(@types/node@24.8.0) + '@inquirer/editor': 4.2.20(@types/node@24.8.0) + '@inquirer/expand': 4.0.20(@types/node@24.8.0) + '@inquirer/input': 4.2.4(@types/node@24.8.0) + '@inquirer/number': 3.0.20(@types/node@24.8.0) + '@inquirer/password': 4.0.20(@types/node@24.8.0) + '@inquirer/rawlist': 4.1.8(@types/node@24.8.0) + '@inquirer/search': 3.1.3(@types/node@24.8.0) + '@inquirer/select': 4.3.4(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/prompts@7.9.0(@types/node@24.7.2)': - dependencies: - '@inquirer/checkbox': 4.3.0(@types/node@24.7.2) - '@inquirer/confirm': 5.1.19(@types/node@24.7.2) - '@inquirer/editor': 4.2.21(@types/node@24.7.2) - '@inquirer/expand': 4.0.21(@types/node@24.7.2) - '@inquirer/input': 4.2.5(@types/node@24.7.2) - '@inquirer/number': 3.0.21(@types/node@24.7.2) - '@inquirer/password': 4.0.21(@types/node@24.7.2) - '@inquirer/rawlist': 4.1.9(@types/node@24.7.2) - '@inquirer/search': 3.2.0(@types/node@24.7.2) - '@inquirer/select': 4.4.0(@types/node@24.7.2) + '@types/node': 24.8.0 + + '@inquirer/prompts@7.9.0(@types/node@24.8.0)': + dependencies: + '@inquirer/checkbox': 4.3.0(@types/node@24.8.0) + '@inquirer/confirm': 5.1.19(@types/node@24.8.0) + '@inquirer/editor': 4.2.21(@types/node@24.8.0) + '@inquirer/expand': 4.0.21(@types/node@24.8.0) + '@inquirer/input': 4.2.5(@types/node@24.8.0) + '@inquirer/number': 3.0.21(@types/node@24.8.0) + '@inquirer/password': 4.0.21(@types/node@24.8.0) + '@inquirer/rawlist': 4.1.9(@types/node@24.8.0) + '@inquirer/search': 3.2.0(@types/node@24.8.0) + '@inquirer/select': 4.4.0(@types/node@24.8.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/rawlist@4.1.8(@types/node@24.7.2)': + '@inquirer/rawlist@4.1.8(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/rawlist@4.1.9(@types/node@24.7.2)': + '@inquirer/rawlist@4.1.9(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/search@3.1.3(@types/node@24.7.2)': + '@inquirer/search@3.1.3(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/search@3.2.0(@types/node@24.7.2)': + '@inquirer/search@3.2.0(@types/node@24.8.0)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/select@4.3.4(@types/node@24.7.2)': + '@inquirer/select@4.3.4(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) + '@inquirer/core': 10.2.2(@types/node@24.8.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/type': 3.0.8(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/select@4.4.0(@types/node@24.7.2)': + '@inquirer/select@4.4.0(@types/node@24.8.0)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.7.2) + '@inquirer/core': 10.3.0(@types/node@24.8.0) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.7.2) + '@inquirer/type': 3.0.9(@types/node@24.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/type@3.0.8(@types/node@24.7.2)': + '@inquirer/type@3.0.8(@types/node@24.8.0)': optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 - '@inquirer/type@3.0.9(@types/node@24.7.2)': + '@inquirer/type@3.0.9(@types/node@24.8.0)': optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 '@isaacs/balanced-match@4.0.1': {} @@ -11086,10 +11086,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.7.2))(@types/node@24.7.2)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.0))(@types/node@24.8.0)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/prompts': 7.8.2(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.0) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11994,7 +11994,7 @@ snapshots: dependencies: '@types/jasmine': 5.1.9 - '@types/jasmine@5.1.10': {} + '@types/jasmine@5.1.11': {} '@types/jasmine@5.1.9': {} @@ -12054,7 +12054,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.7.2': + '@types/node@24.8.0': dependencies: undici-types: 7.14.0 @@ -12445,9 +12445,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12457,13 +12457,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -18328,13 +18328,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18349,7 +18349,7 @@ snapshots: - tsx - yaml - vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18358,7 +18358,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18367,11 +18367,11 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.7.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18389,11 +18389,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.7.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.0 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From 65be6a4d7afd43577c66b61e62353be5185bdb6e Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 20 Oct 2025 10:06:25 +0000 Subject: [PATCH 189/228] build: update rules_browsers digest to 0e0949d See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 50 +++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index adf9c324c8eb..05c65f61d4c0 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -47,7 +47,7 @@ git_override( bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", - commit = "0e04a5443e783ef983c84314e311e68410dd82e1", + commit = "0e0949d2683fadf9d96f1fc270f5c924bfe86beb", remote = "https://github.com/devversion/rules_browsers.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index e8b86d71a634..95690adec6c6 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -709,7 +709,7 @@ }, "@@rules_browsers~//browsers:extensions.bzl%browsers": { "general": { - "bzlTransitiveDigest": "wG3lfivSBp6/w6pp9XxmrFKs0j4BJ1G7oDv4DpFa62g=", + "bzlTransitiveDigest": "5oRf2nvzV4L2ITD9gzMfSQcGAMEPiTJn8m7iBsM4C50=", "usagesDigest": "1PlExi+b77pSr2tAxFCVbpCtFoA7oixHabaL3dmas4Y=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -719,9 +719,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "79a3a4d3a5f9efae04dbb7c2164393ff8fee5f352ec73e36900848c75f4f906f", + "sha256": "4bc6d611d55dc96b213c8605cb8ac27d3c21973bf8b663df4cbf756c989e6745", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/linux64/chrome-headless-shell-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/linux64/chrome-headless-shell-linux64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-linux64/chrome-headless-shell" @@ -738,9 +738,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "cdba96e69a423adc1f2647f35643a10e33260b4dfcc233977f3724f28bffd8f2", + "sha256": "830cc2aafedbe7c9fe671c9898046f8900c06da89d12653ddc3ef26084d2f516", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-x64/chrome-headless-shell-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-x64/chrome-headless-shell-mac-x64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-x64/chrome-headless-shell" @@ -757,9 +757,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "56eb0c57958b50dc6c0de810ea9fcf1ff800baf2a4b14ae0fea536e633806098", + "sha256": "5b5792f5c2d05c3f1f782346910869b61a37b9003f212315b19f4e46710cf8b9", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-arm64/chrome-headless-shell-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-arm64/chrome-headless-shell-mac-arm64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-arm64/chrome-headless-shell" @@ -776,9 +776,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "506b23250323f3eb4cdfe298cfd599571e428f6f3a64e86818ee975f4e585b75", + "sha256": "19bdbf6e1579b6c056b74709520ac9df573f4e80e4f026cc2360a29443cf6c0c", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/win64/chrome-headless-shell-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/win64/chrome-headless-shell-win64.zip" ], "named_files": { "CHROME-HEADLESS-SHELL": "chrome-headless-shell-win64/chrome-headless-shell.exe" @@ -795,9 +795,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "8bf018ed7c383dfd4a4a8f26702265e58b053e71583c4b7a6f8a3eaa6e9b9e6f", + "sha256": "ea41e7a217d878c00e9d66a0724ff54be7d02d08adb7f6458b7d8487b6fbcd84", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/linux64/chromedriver-linux64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/linux64/chromedriver-linux64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-linux64/chromedriver" @@ -812,9 +812,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "4eb9cc848823444374bf2d3d388eaa949cee92114a611ce850024bf6b91352d1", + "sha256": "aede9b67301b930ff9c673df28429aa82ce05c105a4ccbef7e0cd30a97ae429d", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-x64/chromedriver-mac-x64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-x64/chromedriver-mac-x64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-x64/chromedriver" @@ -829,9 +829,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "13f142a6c53f38d26552ee21a874e3d11497bf6fb580b79a6b6b4b042875bef6", + "sha256": "5adf89a3e8edc6755920f4cfe2fe0515d40684878ef5201da5e02a9d491c4003", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/mac-arm64/chromedriver-mac-arm64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/mac-arm64/chromedriver-mac-arm64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver" @@ -846,9 +846,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "65c25dfbe56801d342ae027f365194d0d5b31602ec94e644fe21b6edb876904a", + "sha256": "a3dfe62b3e9e7a42bd324c07dcbbcc3a733a736b2a59f0e93b9250b88103ab73", "urls": [ - "https://storage.googleapis.com/chrome-for-testing-public/143.0.7459.0/win64/chromedriver-win64.zip" + "https://storage.googleapis.com/chrome-for-testing-public/143.0.7482.0/win64/chromedriver-win64.zip" ], "named_files": { "CHROMEDRIVER": "chromedriver-win64/chromedriver.exe" @@ -863,9 +863,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "1c87a9de21941a15177384d4820a6aa3c7dacb38d34089c73a621734ebf1ea9a", + "sha256": "c66a48222ff67d51560240d321895c6926c9b3af345cbf688ced8517781d88d1", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/143.0/linux-x86_64/en-US/firefox-143.0.tar.xz" + "https://archive.mozilla.org/pub/firefox/releases/144.0/linux-x86_64/en-US/firefox-144.0.tar.xz" ], "named_files": { "FIREFOX": "firefox/firefox" @@ -880,9 +880,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "a5c570e277021b61df1295efe77446617ebd768d8ad36a20b309aa382685f6f2", + "sha256": "1e444b80921bc999d56c05a7decc1eaf88c0297cac5b90416299af2c77f5ecc9", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/143.0/mac/en-US/Firefox%20143.0.dmg" + "https://archive.mozilla.org/pub/firefox/releases/144.0/mac/en-US/Firefox%20144.0.dmg" ], "named_files": { "FIREFOX": "Firefox.app/Contents/MacOS/firefox" @@ -897,9 +897,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "a5c570e277021b61df1295efe77446617ebd768d8ad36a20b309aa382685f6f2", + "sha256": "1e444b80921bc999d56c05a7decc1eaf88c0297cac5b90416299af2c77f5ecc9", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/143.0/mac/en-US/Firefox%20143.0.dmg" + "https://archive.mozilla.org/pub/firefox/releases/144.0/mac/en-US/Firefox%20144.0.dmg" ], "named_files": { "FIREFOX": "Firefox.app/Contents/MacOS/firefox" @@ -914,9 +914,9 @@ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl", "ruleClassName": "browser_repo", "attributes": { - "sha256": "fbbadc9a6881aa90d266b572304a75e8814b91817a1db7fc01015d667f60318d", + "sha256": "d1e8a7c061e25a41c8dfa85e3aee8e86e9263c69104d80906c978c8d0556563a", "urls": [ - "https://archive.mozilla.org/pub/firefox/releases/143.0/win64/en-US/Firefox%20Setup%20143.0.exe" + "https://archive.mozilla.org/pub/firefox/releases/144.0/win64/en-US/Firefox%20Setup%20144.0.exe" ], "named_files": { "FIREFOX": "core/firefox.exe" From c881af8da7335659da7bf3d0ca9e2f4f9387d650 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 19 Oct 2025 07:05:14 +0000 Subject: [PATCH 190/228] build: update github/codeql-action action to v3.30.9 See associated pull request for more information. --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ba2f6f496ea9..95b9a1f14a7e 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@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 + uses: github/codeql-action/init@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3.30.9 with: languages: javascript-typescript build-mode: none config-file: .github/codeql/config.yml - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 + uses: github/codeql-action/analyze@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3.30.9 with: category: '/language:javascript-typescript' diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index c7d2c3bb6c2f..27dce2e5d37f 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@755f44910c12a3d7ca0d8c6e42c048b3362f7cec # v3.30.8 + uses: github/codeql-action/upload-sarif@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3.30.9 with: sarif_file: results.sarif From cfee198088446c4ed6d492c05cc17e0f00c0a27b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 13 Oct 2025 07:06:37 +0000 Subject: [PATCH 191/228] build: lock file maintenance See associated pull request for more information. --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ced8fcdac43..c67b44bb6530 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14396,7 +14396,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: From c47e9a8ddde0bd02e9bde4c1eb5200772b23b782 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 20 Oct 2025 15:35:42 +0000 Subject: [PATCH 192/228] build: set `include_npm` to `true` This is needed to run e2e locally. (cherry picked from commit aec58b8c97a58181ce22baf908c851393828312e) --- tests/legacy-cli/e2e.bzl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/legacy-cli/e2e.bzl b/tests/legacy-cli/e2e.bzl index ee9241e8d973..fe7af0c1d133 100644 --- a/tests/legacy-cli/e2e.bzl +++ b/tests/legacy-cli/e2e.bzl @@ -129,7 +129,11 @@ def _e2e_tests(name, runner, toolchain, **kwargs): tags = tags, toolchains = toolchains, node_toolchain = toolchain, - include_npm = False, + include_npm = select({ + # TODO(alanagius): check why on windows this fails. + "@platforms//os:windows": False, + "//conditions:default": True, + }), **kwargs ) From 3c8522b4e9f4120ff9fbf8c297df1afc1489ca1c Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 21 Oct 2025 05:06:18 +0000 Subject: [PATCH 193/228] build: update rules_browsers digest to 6a699bf See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 05c65f61d4c0..68a05f80fe4d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -47,7 +47,7 @@ git_override( bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", - commit = "0e0949d2683fadf9d96f1fc270f5c924bfe86beb", + commit = "6a699bf3e896690e2923cf3ade29fbd4e492e366", remote = "https://github.com/devversion/rules_browsers.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 95690adec6c6..4116e2729494 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -709,7 +709,7 @@ }, "@@rules_browsers~//browsers:extensions.bzl%browsers": { "general": { - "bzlTransitiveDigest": "5oRf2nvzV4L2ITD9gzMfSQcGAMEPiTJn8m7iBsM4C50=", + "bzlTransitiveDigest": "6QMCx97Hwh2hyQPqZEA9AKAxbpygF41+K8xJfeqJYm8=", "usagesDigest": "1PlExi+b77pSr2tAxFCVbpCtFoA7oixHabaL3dmas4Y=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, From bd222df3519660bfd0f3aad2f9058bc031236acd Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 21 Oct 2025 06:06:39 +0000 Subject: [PATCH 194/228] build: update dependency node to v22.21.0 See associated pull request for more information. --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 442c7587a99a..aa50a62f2194 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.20.0 +22.21.0 From 5847ccc545e54eb77a78b2435db7970faf748156 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 21 Oct 2025 08:02:45 +0000 Subject: [PATCH 195/228] fix(@angular/build): update `vite` to `7.11.1` Bump version to fix GHSA-93m4-6634-74q7 --- packages/angular/build/package.json | 2 +- pnpm-lock.yaml | 71 ++++++++++++++++++++++++++--- 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index b677370dc0cf..ea57319b5721 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -42,7 +42,7 @@ "semver": "7.7.2", "source-map-support": "0.5.21", "tinyglobby": "0.2.14", - "vite": "7.1.5", + "vite": "7.1.11", "watchpack": "2.4.4" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c67b44bb6530..7f09ee4724ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,7 +366,7 @@ importers: version: 5.1.14(@types/node@24.8.0) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -419,8 +419,8 @@ importers: specifier: 0.2.14 version: 0.2.14 vite: - specifier: 7.1.5 - version: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + specifier: 7.1.11 + version: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -7640,7 +7640,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qjobs@1.2.0: @@ -8769,6 +8768,46 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + vite@7.1.11: + resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vite@7.1.5: resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -12445,9 +12484,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -18334,7 +18373,7 @@ snapshots: debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18349,6 +18388,24 @@ snapshots: - tsx - yaml + vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.3 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.8.0 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.4.0 + sass: 1.90.0 + terser: 5.43.1 + tsx: 4.20.6 + yaml: 2.8.1 + vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 From 72bc4da23caf611cbc6b26750564dc0801d3ed9a Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Tue, 21 Oct 2025 14:37:53 +0000 Subject: [PATCH 196/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +-- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +-- MODULE.bazel | 2 +- MODULE.bazel.lock | 2 +- package.json | 2 +- pnpm-lock.yaml | 331 +++++++++--------- 10 files changed, 224 insertions(+), 223 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 395e48eddb2a..7fc107f4320e 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + - uses: angular/dev-infra/github-actions/branch-manager@c584c3565b71c7a8cda81d55bb14e3e66ef934da with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c154d6f681e8..ce9874a2f8cf 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 4727b8d95fc3..13a2682927fc 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + - uses: angular/dev-infra/github-actions/pull-request-labeling@c584c3565b71c7a8cda81d55bb14e3e66ef934da 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + - uses: angular/dev-infra/github-actions/post-approval-changes@c584c3565b71c7a8cda81d55bb14e3e66ef934da with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 342bc1d3298f..62c8bf4bee8c 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + - uses: angular/dev-infra/github-actions/feature-request@c584c3565b71c7a8cda81d55bb14e3e66ef934da with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 7885d41f27cd..bbbfd5dbc32a 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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 a8aaea7f7160..b6402fb6102a 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/linting/licenses@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - 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@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@a613c67d98163635746ce32a72fb9aa4f1e9c6cc + uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 68a05f80fe4d..095be38e10aa 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "a613c67d98163635746ce32a72fb9aa4f1e9c6cc", + commit = "c584c3565b71c7a8cda81d55bb14e3e66ef934da", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 4116e2729494..e01bbfc311c2 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1117,7 +1117,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "FmfMiNXAxRoLWw3NloQbssosE1egrSvzirbQnso7j7E=", - "usagesDigest": "1kpLfNSteilN9lIcsMk1OY9Ob+GrTMGxU495OOEa2cA=", + "usagesDigest": "38oEDZc7lXljAyTuJj6cDZj2jekVXsnDxDjjor1KwTA=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/package.json b/package.json index 87bb4548cf6b..32e94b6bb982 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.6", "@angular/localize": "20.3.6", "@angular/material": "20.2.9", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#53dcff1a283d75255b9950472c37a571cc35ee28", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e", "@angular/platform-browser": "20.3.6", "@angular/platform-server": "20.3.6", "@angular/router": "20.3.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f09ee4724ea..f965aac8bfe2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.9 version: 20.2.9(2a95e28ac5632fb7b160d9783a0bce26) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#53dcff1a283d75255b9950472c37a571cc35ee28 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.6 version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.8.0) + version: 5.1.14(@types/node@24.8.1) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.11 - version: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.8.0) + version: 7.8.2(@types/node@24.8.1) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.0))(@types/node@24.8.0)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.1))(@types/node@24.8.1)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.8.0) + version: 7.8.2(@types/node@24.8.1) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28} - version: 0.0.0-a613c67d98163635746ce32a72fb9aa4f1e9c6cc + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e} + version: 0.0.0-c584c3565b71c7a8cda81d55bb14e3e66ef934da hasBin: true '@angular/platform-browser@20.3.6': @@ -3488,8 +3488,8 @@ packages: '@types/jasmine-reporters@2.5.3': resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==} - '@types/jasmine@5.1.11': - resolution: {integrity: sha512-eAij9lMAsosuA8cvRcqw7p2vO+LUraktQDmOUFx2jAnya8NUchr3DryHksfhZbRzU83vzNUSZhlk1cFdoePxwA==} + '@types/jasmine@5.1.12': + resolution: {integrity: sha512-1BzPxNsFDLDfj9InVR3IeY0ZVf4o9XV+4mDqoCfyPkbsA7dYyKAPAb2co6wLFlHcvxPlt1wShm7zQdV7uTfLGA==} '@types/jasmine@5.1.9': resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} @@ -3536,8 +3536,8 @@ packages: '@types/node@22.18.10': resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} - '@types/node@24.8.0': - resolution: {integrity: sha512-5x08bUtU8hfboMTrJ7mEO4CpepS9yBwAqcL52y86SWNmbPX8LVbNs3EP4cNrIZgdjk2NAlP2ahNihozpoZIxSg==} + '@types/node@24.8.1': + resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -7640,6 +7640,7 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qjobs@1.2.0: @@ -9410,13 +9411,13 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/53dcff1a283d75255b9950472c37a571cc35ee28(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.9.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/prompts': 7.9.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) '@octokit/auth-app': 8.1.1 '@octokit/core': 7.0.5 '@octokit/graphql': 9.0.2 @@ -9433,8 +9434,8 @@ snapshots: '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 - '@types/jasmine': 5.1.11 - '@types/node': 24.8.0 + '@types/jasmine': 5.1.12 + '@types/node': 24.8.1 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -10802,244 +10803,244 @@ snapshots: '@inquirer/ansi@1.0.1': {} - '@inquirer/checkbox@4.2.4(@types/node@24.8.0)': + '@inquirer/checkbox@4.2.4(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/checkbox@4.3.0(@types/node@24.8.0)': + '@inquirer/checkbox@4.3.0(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/confirm@5.1.14(@types/node@24.8.0)': + '@inquirer/confirm@5.1.14(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/confirm@5.1.19(@types/node@24.8.0)': + '@inquirer/confirm@5.1.19(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/core@10.2.2(@types/node@24.8.0)': + '@inquirer/core@10.2.2(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/core@10.3.0(@types/node@24.8.0)': + '@inquirer/core@10.3.0(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.1 '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/editor@4.2.20(@types/node@24.8.0)': + '@inquirer/editor@4.2.20(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/external-editor': 1.0.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/external-editor': 1.0.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/editor@4.2.21(@types/node@24.8.0)': + '@inquirer/editor@4.2.21(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/external-editor': 1.0.2(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/external-editor': 1.0.2(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/expand@4.0.20(@types/node@24.8.0)': + '@inquirer/expand@4.0.20(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/expand@4.0.21(@types/node@24.8.0)': + '@inquirer/expand@4.0.21(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/external-editor@1.0.2(@types/node@24.8.0)': + '@inquirer/external-editor@1.0.2(@types/node@24.8.1)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 '@inquirer/figures@1.0.13': {} '@inquirer/figures@1.0.14': {} - '@inquirer/input@4.2.4(@types/node@24.8.0)': + '@inquirer/input@4.2.4(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/input@4.2.5(@types/node@24.8.0)': + '@inquirer/input@4.2.5(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/number@3.0.20(@types/node@24.8.0)': + '@inquirer/number@3.0.20(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/number@3.0.21(@types/node@24.8.0)': + '@inquirer/number@3.0.21(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/password@4.0.20(@types/node@24.8.0)': + '@inquirer/password@4.0.20(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/password@4.0.21(@types/node@24.8.0)': + '@inquirer/password@4.0.21(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 - - '@inquirer/prompts@7.8.2(@types/node@24.8.0)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.8.0) - '@inquirer/confirm': 5.1.14(@types/node@24.8.0) - '@inquirer/editor': 4.2.20(@types/node@24.8.0) - '@inquirer/expand': 4.0.20(@types/node@24.8.0) - '@inquirer/input': 4.2.4(@types/node@24.8.0) - '@inquirer/number': 3.0.20(@types/node@24.8.0) - '@inquirer/password': 4.0.20(@types/node@24.8.0) - '@inquirer/rawlist': 4.1.8(@types/node@24.8.0) - '@inquirer/search': 3.1.3(@types/node@24.8.0) - '@inquirer/select': 4.3.4(@types/node@24.8.0) + '@types/node': 24.8.1 + + '@inquirer/prompts@7.8.2(@types/node@24.8.1)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.8.1) + '@inquirer/confirm': 5.1.14(@types/node@24.8.1) + '@inquirer/editor': 4.2.20(@types/node@24.8.1) + '@inquirer/expand': 4.0.20(@types/node@24.8.1) + '@inquirer/input': 4.2.4(@types/node@24.8.1) + '@inquirer/number': 3.0.20(@types/node@24.8.1) + '@inquirer/password': 4.0.20(@types/node@24.8.1) + '@inquirer/rawlist': 4.1.8(@types/node@24.8.1) + '@inquirer/search': 3.1.3(@types/node@24.8.1) + '@inquirer/select': 4.3.4(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 - - '@inquirer/prompts@7.9.0(@types/node@24.8.0)': - dependencies: - '@inquirer/checkbox': 4.3.0(@types/node@24.8.0) - '@inquirer/confirm': 5.1.19(@types/node@24.8.0) - '@inquirer/editor': 4.2.21(@types/node@24.8.0) - '@inquirer/expand': 4.0.21(@types/node@24.8.0) - '@inquirer/input': 4.2.5(@types/node@24.8.0) - '@inquirer/number': 3.0.21(@types/node@24.8.0) - '@inquirer/password': 4.0.21(@types/node@24.8.0) - '@inquirer/rawlist': 4.1.9(@types/node@24.8.0) - '@inquirer/search': 3.2.0(@types/node@24.8.0) - '@inquirer/select': 4.4.0(@types/node@24.8.0) + '@types/node': 24.8.1 + + '@inquirer/prompts@7.9.0(@types/node@24.8.1)': + dependencies: + '@inquirer/checkbox': 4.3.0(@types/node@24.8.1) + '@inquirer/confirm': 5.1.19(@types/node@24.8.1) + '@inquirer/editor': 4.2.21(@types/node@24.8.1) + '@inquirer/expand': 4.0.21(@types/node@24.8.1) + '@inquirer/input': 4.2.5(@types/node@24.8.1) + '@inquirer/number': 3.0.21(@types/node@24.8.1) + '@inquirer/password': 4.0.21(@types/node@24.8.1) + '@inquirer/rawlist': 4.1.9(@types/node@24.8.1) + '@inquirer/search': 3.2.0(@types/node@24.8.1) + '@inquirer/select': 4.4.0(@types/node@24.8.1) optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/rawlist@4.1.8(@types/node@24.8.0)': + '@inquirer/rawlist@4.1.8(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/rawlist@4.1.9(@types/node@24.8.0)': + '@inquirer/rawlist@4.1.9(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/search@3.1.3(@types/node@24.8.0)': + '@inquirer/search@3.1.3(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/search@3.2.0(@types/node@24.8.0)': + '@inquirer/search@3.2.0(@types/node@24.8.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/select@4.3.4(@types/node@24.8.0)': + '@inquirer/select@4.3.4(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.0) + '@inquirer/core': 10.2.2(@types/node@24.8.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/type': 3.0.8(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/select@4.4.0(@types/node@24.8.0)': + '@inquirer/select@4.4.0(@types/node@24.8.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.0) + '@inquirer/core': 10.3.0(@types/node@24.8.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.0) + '@inquirer/type': 3.0.9(@types/node@24.8.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/type@3.0.8(@types/node@24.8.0)': + '@inquirer/type@3.0.8(@types/node@24.8.1)': optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 - '@inquirer/type@3.0.9(@types/node@24.8.0)': + '@inquirer/type@3.0.9(@types/node@24.8.1)': optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 '@isaacs/balanced-match@4.0.1': {} @@ -11125,10 +11126,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.0))(@types/node@24.8.0)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.1))(@types/node@24.8.1)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.8.0) - '@inquirer/type': 3.0.8(@types/node@24.8.0) + '@inquirer/prompts': 7.8.2(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.8.1) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -12033,7 +12034,7 @@ snapshots: dependencies: '@types/jasmine': 5.1.9 - '@types/jasmine@5.1.11': {} + '@types/jasmine@5.1.12': {} '@types/jasmine@5.1.9': {} @@ -12093,7 +12094,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.8.0': + '@types/node@24.8.1': dependencies: undici-types: 7.14.0 @@ -12484,9 +12485,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12496,13 +12497,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14435,7 +14436,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -18367,13 +18368,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18388,7 +18389,7 @@ snapshots: - tsx - yaml - vite@7.1.11(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18397,7 +18398,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18406,7 +18407,7 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18415,7 +18416,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18424,11 +18425,11 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.8.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18446,11 +18447,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.8.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.8.0 + '@types/node': 24.8.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From a31533cf492048f62a41b9c09e53779269ee172d Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:17:38 +0000 Subject: [PATCH 197/228] fix(@angular-devkit/schematics): respect `--force` option when schematic contains `host.create` Removes the `FileAlreadyExistException` check within the `create` method of `HostTree`. This change allows a schematic to create a file even if one already exists at the same path, effectively overwriting it. This provides more flexibility for schematic authors, particularly in scenarios where files need to be replaced or updated unconditionally. It is intended to be used with schematics that have a `force` or `overwrite` option. Closes #30578 (cherry picked from commit 18bf8e7b3b36b968d064299e5c557942c0ed7ec0) --- .../schematics/src/tree/host-tree.ts | 7 +-- .../generate/schematic-force-override.ts | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 tests/legacy-cli/e2e/tests/generate/schematic-force-override.ts diff --git a/packages/angular_devkit/schematics/src/tree/host-tree.ts b/packages/angular_devkit/schematics/src/tree/host-tree.ts index 6f5e55970543..c2437556be16 100644 --- a/packages/angular_devkit/schematics/src/tree/host-tree.ts +++ b/packages/angular_devkit/schematics/src/tree/host-tree.ts @@ -20,7 +20,6 @@ import { import { ParseError, parse as jsoncParse, printParseErrorCode } from 'jsonc-parser'; import { ContentHasMutatedException, - FileAlreadyExistException, FileDoesNotExistException, InvalidUpdateRecordException, MergeConflictException, @@ -407,12 +406,8 @@ export class HostTree implements Tree { // Structural methods. create(path: string, content: Buffer | string): void { - const p = this._normalizePath(path); - if (this._recordSync.exists(p)) { - throw new FileAlreadyExistException(p); - } const c = typeof content == 'string' ? Buffer.from(content) : content; - this._record.create(p, c as {} as virtualFs.FileBuffer).subscribe(); + this._record.create(this._normalizePath(path), c as {} as virtualFs.FileBuffer).subscribe(); } delete(path: string): void { this._recordSync.delete(this._normalizePath(path)); diff --git a/tests/legacy-cli/e2e/tests/generate/schematic-force-override.ts b/tests/legacy-cli/e2e/tests/generate/schematic-force-override.ts new file mode 100644 index 000000000000..d3e9e1b7d947 --- /dev/null +++ b/tests/legacy-cli/e2e/tests/generate/schematic-force-override.ts @@ -0,0 +1,51 @@ +import { appendFile } from 'node:fs/promises'; +import { getGlobalVariable } from '../../utils/env'; +import { getActivePackageManager, installWorkspacePackages } from '../../utils/packages'; +import { ng } from '../../utils/process'; +import { isPrereleaseCli, updateJsonFile } from '../../utils/project'; +import { expectToFail } from '../../utils/utils'; + +const snapshots = require('../../ng-snapshot/package.json'); + +export default async function () { + const isPrerelease = await isPrereleaseCli(); + let tag = isPrerelease ? '@next' : ''; + if (getActivePackageManager() === 'npm') { + await appendFile('.npmrc', '\nlegacy-peer-deps=true'); + } + + await ng('add', `@angular/material${tag}`, '--skip-confirmation'); + + const isSnapshotBuild = getGlobalVariable('argv')['ng-snapshots']; + if (isSnapshotBuild) { + await updateJsonFile('package.json', (packageJson) => { + const dependencies = packageJson['dependencies']; + // Angular material adds dependencies on other Angular packages + // Iterate over all of the packages to update them to the snapshot version. + for (const [name, version] of Object.entries(snapshots.dependencies)) { + if (name in dependencies) { + dependencies[name] = version; + } + } + }); + await installWorkspacePackages(); + } + + const args: string[] = [ + 'generate', + '@angular/material:theme-color', + '--primary-color=#0641e6', + '--tertiary-color=#994aff', + '--neutral-color=#313138', + '--error-color=#eb5757', + '--secondary-color=#009096', + '--neutral-variant-color=#b2b2b8', + ]; + + await ng(...args); + + // Should fail as file exists + await expectToFail(() => ng(...args)); + + await ng(...args, '--force'); +} From 6f399cc4f6671b7c1bc0b005d325f1bdc703df2d Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 22 Oct 2025 12:50:47 +0000 Subject: [PATCH 198/228] build: update dependency rules_nodejs to v6.6.0 See associated pull request for more information. Closes #31552 as a pr takeover --- BUILD.bazel | 12 + MODULE.bazel | 84 +++---- MODULE.bazel.lock | 615 ++-------------------------------------------- 3 files changed, 67 insertions(+), 644 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 99bc6eb0355f..57090fe9772a 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -108,3 +108,15 @@ validate_ts_version_matching( module_lock_file = "MODULE.bazel.lock", package_json = "package.json", ) + +# This is needed following https://github.com/bazel-contrib/rules_nodejs/pull/3859 +toolchain( + name = "node22_windows_no_exec_config_toolchain", + exec_compatible_with = [], + target_compatible_with = [ + "@platforms//os:windows", + "@platforms//cpu:x86_64", + ], + toolchain = "@node22_windows_amd64//:toolchain", + toolchain_type = "@rules_nodejs//nodejs:toolchain_type", +) diff --git a/MODULE.bazel b/MODULE.bazel index 095be38e10aa..633ad946e375 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,7 +5,7 @@ module( ) bazel_dep(name = "yq.bzl", version = "0.3.1") -bazel_dep(name = "rules_nodejs", version = "6.5.2") +bazel_dep(name = "rules_nodejs", version = "6.6.0") bazel_dep(name = "aspect_rules_js", version = "2.6.2") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") @@ -51,33 +51,17 @@ git_override( remote = "https://github.com/devversion/rules_browsers.git", ) -# The below is needed until https://github.com/bazel-contrib/rules_nodejs/pull/3853 is merged and released. -NODE_24_VERSION = "24.0.0" - -NODE_24_REPO = { - "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"), - "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"), - "24.0.0-linux_arm64": ("node-v24.0.0-linux-arm64.tar.xz", "node-v24.0.0-linux-arm64", "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"), - "24.0.0-linux_ppc64le": ("node-v24.0.0-linux-ppc64le.tar.xz", "node-v24.0.0-linux-ppc64le", "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"), - "24.0.0-linux_s390x": ("node-v24.0.0-linux-s390x.tar.xz", "node-v24.0.0-linux-s390x", "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"), - "24.0.0-linux_amd64": ("node-v24.0.0-linux-x64.tar.xz", "node-v24.0.0-linux-x64", "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"), - "24.0.0-windows_amd64": ("node-v24.0.0-win-x64.zip", "node-v24.0.0-win-x64", "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"), -} - node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") -node.toolchain( - name = "nodejs", - node_repositories = NODE_24_REPO, - node_version = NODE_24_VERSION, +node.toolchain(node_version = "24.0.0") +use_repo( + node, + "nodejs_darwin_amd64", + "nodejs_darwin_arm64", + "nodejs_linux_amd64", + "nodejs_linux_arm64", + "nodejs_toolchains", + "nodejs_windows_amd64", ) -use_repo(node, "nodejs_toolchains") -use_repo(node, "nodejs_darwin_amd64") -use_repo(node, "nodejs_darwin_arm64") -use_repo(node, "nodejs_linux_amd64") -use_repo(node, "nodejs_linux_arm64") -use_repo(node, "nodejs_linux_ppc64le") -use_repo(node, "nodejs_linux_s390x") -use_repo(node, "nodejs_windows_amd64") node_dev = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True) @@ -86,40 +70,42 @@ node_dev.toolchain( name = "node20", node_version = "20.19.0", ) -use_repo(node_dev, "node20_darwin_arm64") -use_repo(node_dev, "node20_darwin_amd64") -use_repo(node_dev, "node20_linux_amd64") -use_repo(node_dev, "node20_linux_arm64") -use_repo(node_dev, "node20_linux_s390x") -use_repo(node_dev, "node20_linux_ppc64le") -use_repo(node_dev, "node20_windows_amd64") # Node.js 22 node_dev.toolchain( name = "node22", node_version = "22.12.0", ) -use_repo(node_dev, "node22_darwin_arm64") -use_repo(node_dev, "node22_darwin_amd64") -use_repo(node_dev, "node22_linux_amd64") -use_repo(node_dev, "node22_linux_arm64") -use_repo(node_dev, "node22_linux_s390x") -use_repo(node_dev, "node22_linux_ppc64le") -use_repo(node_dev, "node22_windows_amd64") # Node.js 24 node_dev.toolchain( name = "node24", - node_repositories = NODE_24_REPO, - node_version = NODE_24_VERSION, + node_version = "24.0.0", ) -use_repo(node_dev, "node24_darwin_arm64") -use_repo(node_dev, "node24_darwin_amd64") -use_repo(node_dev, "node24_linux_amd64") -use_repo(node_dev, "node24_linux_arm64") -use_repo(node_dev, "node24_linux_s390x") -use_repo(node_dev, "node24_linux_ppc64le") -use_repo(node_dev, "node24_windows_amd64") +use_repo( + node_dev, + "node20_darwin_amd64", + "node20_darwin_arm64", + "node20_linux_amd64", + "node20_linux_arm64", + "node20_toolchains", + "node20_windows_amd64", + "node22_darwin_amd64", + "node22_darwin_arm64", + "node22_linux_amd64", + "node22_linux_arm64", + "node22_toolchains", + "node22_windows_amd64", + "node24_darwin_amd64", + "node24_darwin_arm64", + "node24_linux_amd64", + "node24_linux_arm64", + "node24_toolchains", + "node24_windows_amd64", +) + +# This is needed following https://github.com/bazel-contrib/rules_nodejs/pull/3859 +register_toolchains("//:node22_windows_no_exec_config_toolchain") npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") npm.npm_translate_lock( diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index e01bbfc311c2..5455a108bfcd 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -152,7 +152,8 @@ "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d", "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/MODULE.bazel": "546d0cf79f36f9f6e080816045f97234b071c205f4542e3351bd4424282a8810", "https://bcr.bazel.build/modules/rules_nodejs/6.5.2/MODULE.bazel": "7f9ea68a0ce6d82905ce9f74e76ab8a8b4531ed4c747018c9d76424ad0b3370d", - "https://bcr.bazel.build/modules/rules_nodejs/6.5.2/source.json": "6a6ca0940914d55c550d1417cad13a56c9900e23f651a762d8ccc5a64adcf661", + "https://bcr.bazel.build/modules/rules_nodejs/6.6.0/MODULE.bazel": "49ef4cccc17a5a13c9beca2d0b3f7dea1d97381df8cb6ba4dea03943f6a81b0a", + "https://bcr.bazel.build/modules/rules_nodejs/6.6.0/source.json": "cbd156fa2db33707275de138110b78eb86a4cf510b979df7c4b6a8e7127484de", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", "https://bcr.bazel.build/modules/rules_pkg/0.8.1/MODULE.bazel": "7e9e7b5b26bd7ff012dfe63930db2f0176ddcd25e44a858fc72d63e995b6aab9", "https://bcr.bazel.build/modules/rules_pkg/0.8.1/source.json": "15dd7e13dc303f7fcde2b55300bcb8de5c0dd08a7a7269749cbbaa0fb1dfbe16", @@ -1116,8 +1117,8 @@ }, "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { - "bzlTransitiveDigest": "FmfMiNXAxRoLWw3NloQbssosE1egrSvzirbQnso7j7E=", - "usagesDigest": "38oEDZc7lXljAyTuJj6cDZj2jekVXsnDxDjjor1KwTA=", + "bzlTransitiveDigest": "71PwVsMlLx+RWdt1SI9nSqRHX7DX/NstWwr7/XBxEMs=", + "usagesDigest": "UMPJAxKFUmrhUd/xrzHapBiQuXI2tFY2p5YhjbyQDHY=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1127,43 +1128,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1177,43 +1142,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1227,43 +1156,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1277,43 +1170,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1327,43 +1184,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1377,43 +1198,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1427,43 +1212,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1477,43 +1226,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1814,43 +1527,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1864,43 +1541,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1914,43 +1555,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -1964,43 +1569,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2014,43 +1583,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2064,43 +1597,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2114,43 +1611,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], @@ -2164,43 +1625,7 @@ "ruleClassName": "_nodejs_repositories", "attributes": { "node_download_auth": {}, - "node_repositories": { - "24.0.0-darwin_arm64": [ - "node-v24.0.0-darwin-arm64.tar.gz", - "node-v24.0.0-darwin-arm64", - "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121" - ], - "24.0.0-darwin_amd64": [ - "node-v24.0.0-darwin-x64.tar.gz", - "node-v24.0.0-darwin-x64", - "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a" - ], - "24.0.0-linux_arm64": [ - "node-v24.0.0-linux-arm64.tar.xz", - "node-v24.0.0-linux-arm64", - "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040" - ], - "24.0.0-linux_ppc64le": [ - "node-v24.0.0-linux-ppc64le.tar.xz", - "node-v24.0.0-linux-ppc64le", - "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d" - ], - "24.0.0-linux_s390x": [ - "node-v24.0.0-linux-s390x.tar.xz", - "node-v24.0.0-linux-s390x", - "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021" - ], - "24.0.0-linux_amd64": [ - "node-v24.0.0-linux-x64.tar.xz", - "node-v24.0.0-linux-x64", - "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7" - ], - "24.0.0-windows_amd64": [ - "node-v24.0.0-win-x64.zip", - "node-v24.0.0-win-x64", - "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304" - ] - }, + "node_repositories": {}, "node_urls": [ "https://nodejs.org/dist/v{version}/{filename}" ], From 3620d3219dcffc7cb04648dac368639caabd2f0e Mon Sep 17 00:00:00 2001 From: MeAkib Date: Tue, 21 Oct 2025 21:03:18 +0600 Subject: [PATCH 199/228] docs: update missing developer doc link (cherry picked from commit 2761d85e4ba27d29669a3a7bf99d918d13536347) --- CONTRIBUTING.md | 2 +- scripts/templates/contributing.ejs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0642e0b7ff65..d9c476e355d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -294,7 +294,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# [corporate-cla]: https://code.google.com/legal/corporate-cla-v1.0.html -[dev-doc]: https://github.com/angular/angular-cli/blob/main/packages/angular/cli/README.md#development-hints-for-working-on-angular-cli +[dev-doc]: https://github.com/angular/angular-cli/blob/main/docs/DEVELOPER.md [GitHub]: https://github.com/angular/angular-cli [gitter]: https://gitter.im/angular/angular-cli [individual-cla]: https://code.google.com/legal/individual-cla-v1.0.html diff --git a/scripts/templates/contributing.ejs b/scripts/templates/contributing.ejs index b5bb997911ce..5183cdc1d27e 100644 --- a/scripts/templates/contributing.ejs +++ b/scripts/templates/contributing.ejs @@ -284,7 +284,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# [corporate-cla]: https://code.google.com/legal/corporate-cla-v1.0.html -[dev-doc]: https://github.com/angular/angular-cli/blob/main/packages/angular/cli/README.md#development-hints-for-working-on-angular-cli +[dev-doc]: https://github.com/angular/angular-cli/blob/main/docs/DEVELOPER.md [GitHub]: https://github.com/angular/angular-cli [gitter]: https://gitter.im/angular/angular-cli [individual-cla]: https://code.google.com/legal/individual-cla-v1.0.html From fdeff176f95c92b53cd78e6a174ef81a533c3d0c Mon Sep 17 00:00:00 2001 From: MeAkib Date: Wed, 22 Oct 2025 00:49:50 +0600 Subject: [PATCH 200/228] refactor(@schematics/angular): add trailing commas and remove leading commas in component template Added trailing commas to all component metadata properties in the schematic template to ensure cleaner diffs and consistent formatting. Removed unnecessary leading commas from conditional blocks since each property now ends with a trailing comma. (cherry picked from commit a660d69e6a5c42887ebca3522fd5e422dc863300) --- ...__name@dasherize__.__type@dasherize__.ts.template | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/schematics/angular/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template b/packages/schematics/angular/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template index b4810e6a24e0..0c785ec2791e 100644 --- a/packages/schematics/angular/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +++ b/packages/schematics/angular/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template @@ -8,16 +8,16 @@ import { <% if(changeDetection !== 'Default') { %>ChangeDetectionStrategy, <% }%

<%= dasherize(name) %> works!

- `<% } else { %> - templateUrl: './<%= dasherize(name) %><%= type ? '.' + dasherize(type): '' %><%= ngext %>.html'<% } if(inlineStyle) { %>, + `,<% } else { %> + templateUrl: './<%= dasherize(name) %><%= type ? '.' + dasherize(type): '' %><%= ngext %>.html',<% } if(inlineStyle) { %> styles: `<% if(displayBlock){ %> :host { display: block; } - <% } %>`<% } else if (style !== 'none') { %>, - styleUrl: './<%= dasherize(name) %><%= type ? '.' + dasherize(type): '' %>.<%= style %>'<% } %><% if(!!viewEncapsulation) { %>, - encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>, - changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %> + <% } %>`,<% } else if (style !== 'none') { %> + styleUrl: './<%= dasherize(name) %><%= type ? '.' + dasherize(type): '' %>.<%= style %>',<% } %><% if(!!viewEncapsulation) { %> + encapsulation: ViewEncapsulation.<%= viewEncapsulation %>,<% } if (changeDetection !== 'Default') { %> + changeDetection: ChangeDetectionStrategy.<%= changeDetection %>,<% } %> }) export <% if(exportDefault) {%>default <%}%>class <%= classify(name) %><%= classify(type) %> { From 5ad69a5ea9fc225e4a2683cdd71635b355af68c7 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 22 Oct 2025 16:56:29 -0400 Subject: [PATCH 201/228] release: cut the v20.3.7 release --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 811509121239..b3eb54015455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ + + +# 20.3.7 (2025-10-22) + +### @angular-devkit/schematics + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------- | +| [a31533cf4](https://github.com/angular/angular-cli/commit/a31533cf492048f62a41b9c09e53779269ee172d) | fix | respect `--force` option when schematic contains `host.create` | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------ | +| [8cdda111c](https://github.com/angular/angular-cli/commit/8cdda111cc0b343aa5eb6a7ccbad93302a543226) | fix | resolve Angular locale data namespace in esbuild | +| [5847ccc54](https://github.com/angular/angular-cli/commit/5847ccc545e54eb77a78b2435db7970faf748156) | fix | update `vite` to `7.11.1` | + +### @angular/ssr + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------- | +| [3a28fb6a1](https://github.com/angular/angular-cli/commit/3a28fb6a13061215b881c49232db979fc3c2f641) | fix | correctly handle routes with matrix parameters | +| [5db6d6487](https://github.com/angular/angular-cli/commit/5db6d64870c7ce0b883722a07c828946b7d2217d) | fix | ensure server-side navigation triggers a redirect | + + + # 20.3.6 (2025-10-15) diff --git a/package.json b/package.json index 32e94b6bb982..5594c777c8dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.6", + "version": "20.3.7", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 3cea706976b37ca27a3e7bcb1384bd456e4e187d Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Wed, 22 Oct 2025 21:35:01 +0000 Subject: [PATCH 202/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 +- MODULE.bazel | 2 +- package.json | 28 +- packages/angular/ssr/package.json | 12 +- packages/ngtools/webpack/package.json | 4 +- pnpm-lock.yaml | 680 +++++++++--------- 11 files changed, 418 insertions(+), 418 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 7fc107f4320e..a9733b11fe7b 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + - uses: angular/dev-infra/github-actions/branch-manager@43d4ea5534ce399657a64c94a9dc1ea883324804 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce9874a2f8cf..9bcfc0802c60 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 13a2682927fc..200a6b3fd5e7 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + - uses: angular/dev-infra/github-actions/pull-request-labeling@43d4ea5534ce399657a64c94a9dc1ea883324804 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + - uses: angular/dev-infra/github-actions/post-approval-changes@43d4ea5534ce399657a64c94a9dc1ea883324804 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 62c8bf4bee8c..83f9811ddb54 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + - uses: angular/dev-infra/github-actions/feature-request@43d4ea5534ce399657a64c94a9dc1ea883324804 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index bbbfd5dbc32a..17118598762c 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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 b6402fb6102a..93723221e592 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/linting/licenses@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - 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@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@c584c3565b71c7a8cda81d55bb14e3e66ef934da + uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index 633ad946e375..5aef813e81ac 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "c584c3565b71c7a8cda81d55bb14e3e66ef934da", + commit = "43d4ea5534ce399657a64c94a9dc1ea883324804", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 5594c777c8dc..145e02ed2d86 100644 --- a/package.json +++ b/package.json @@ -46,20 +46,20 @@ }, "homepage": "https://github.com/angular/angular-cli", "devDependencies": { - "@angular/animations": "20.3.6", - "@angular/cdk": "20.2.9", - "@angular/common": "20.3.6", - "@angular/compiler": "20.3.6", - "@angular/compiler-cli": "20.3.6", - "@angular/core": "20.3.6", - "@angular/forms": "20.3.6", - "@angular/localize": "20.3.6", - "@angular/material": "20.2.9", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e", - "@angular/platform-browser": "20.3.6", - "@angular/platform-server": "20.3.6", - "@angular/router": "20.3.6", - "@angular/service-worker": "20.3.6", + "@angular/animations": "20.3.7", + "@angular/cdk": "20.2.10", + "@angular/common": "20.3.7", + "@angular/compiler": "20.3.7", + "@angular/compiler-cli": "20.3.7", + "@angular/core": "20.3.7", + "@angular/forms": "20.3.7", + "@angular/localize": "20.3.7", + "@angular/material": "20.2.10", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#a3426d37e6f9781b00650a767eb5b3967cdb94f7", + "@angular/platform-browser": "20.3.7", + "@angular/platform-server": "20.3.7", + "@angular/router": "20.3.7", + "@angular/service-worker": "20.3.7", "@bazel/bazelisk": "1.26.0", "@bazel/buildifier": "8.2.1", "@eslint/compat": "1.3.2", diff --git a/packages/angular/ssr/package.json b/packages/angular/ssr/package.json index f501294ddc4c..21259c1c2b94 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.3.6", - "@angular/compiler": "20.3.6", - "@angular/core": "20.3.6", - "@angular/platform-browser": "20.3.6", - "@angular/platform-server": "20.3.6", - "@angular/router": "20.3.6", + "@angular/common": "20.3.7", + "@angular/compiler": "20.3.7", + "@angular/core": "20.3.7", + "@angular/platform-browser": "20.3.7", + "@angular/platform-server": "20.3.7", + "@angular/router": "20.3.7", "@schematics/angular": "workspace:*" }, "sideEffects": false, diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json index 4971250018fd..83bbdfd6a3b9 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.3.6", - "@angular/compiler-cli": "20.3.6", + "@angular/compiler": "20.3.7", + "@angular/compiler-cli": "20.3.7", "typescript": "5.9.2", "webpack": "5.101.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f965aac8bfe2..de1d0e1e6804 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,47 +20,47 @@ importers: built: true devDependencies: '@angular/animations': - specifier: 20.3.6 - version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.7 + version: 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': - specifier: 20.2.9 - version: 20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.2.10 + version: 20.2.10(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': - specifier: 20.3.6 - version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.6 - version: 20.3.6 + specifier: 20.3.7 + version: 20.3.7 '@angular/compiler-cli': - specifier: 20.3.6 - version: 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) + specifier: 20.3.7 + version: 20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2) '@angular/core': - specifier: 20.3.6 - version: 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.7 + version: 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': - specifier: 20.3.6 - version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/localize': - specifier: 20.3.6 - version: 20.3.6(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(@angular/compiler@20.3.6) + specifier: 20.3.7 + version: 20.3.7(@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2))(@angular/compiler@20.3.7) '@angular/material': - specifier: 20.2.9 - version: 20.2.9(2a95e28ac5632fb7b160d9783a0bce26) + specifier: 20.2.10 + version: 20.2.10(72d1932aa29c0670c8359e3ed8a5ff55) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#a3426d37e6f9781b00650a767eb5b3967cdb94f7 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': - specifier: 20.3.6 - version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.7 + version: 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.6 - version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.7)(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.6 - version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': - specifier: 20.3.6 - version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bazel/bazelisk': specifier: 1.26.0 version: 1.26.0 @@ -342,7 +342,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.9.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) packages/angular/build: dependencies: @@ -363,10 +363,10 @@ importers: version: 7.24.7 '@inquirer/confirm': specifier: 5.1.14 - version: 5.1.14(@types/node@24.8.1) + version: 5.1.14(@types/node@24.9.1) '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 2.1.0(vite@7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: specifier: 0.3.5 version: 0.3.5 @@ -420,7 +420,7 @@ importers: version: 0.2.14 vite: specifier: 7.1.11 - version: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: specifier: 2.4.4 version: 2.4.4 @@ -439,7 +439,7 @@ importers: version: 4.4.0 ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -448,7 +448,7 @@ importers: version: 7.8.2 vitest: specifier: 3.2.4 - version: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/node@24.9.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: lmdb: specifier: 3.4.2 @@ -467,10 +467,10 @@ importers: version: link:../../angular_devkit/schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.8.1) + version: 7.8.2(@types/node@24.9.1) '@listr2/prompt-adapter-inquirer': specifier: 3.0.1 - version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.1))(@types/node@24.8.1)(listr2@9.0.1) + version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.9.1))(@types/node@24.9.1)(listr2@9.0.1) '@modelcontextprotocol/sdk': specifier: 1.17.3 version: 1.17.3 @@ -533,23 +533,23 @@ importers: specifier: workspace:* version: link:../../angular_devkit/schematics '@angular/common': - specifier: 20.3.6 - version: 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': - specifier: 20.3.6 - version: 20.3.6 + specifier: 20.3.7 + version: 20.3.7 '@angular/core': - specifier: 20.3.6 - version: 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + specifier: 20.3.7 + version: 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': - specifier: 20.3.6 - version: 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + specifier: 20.3.7 + version: 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-server': - specifier: 20.3.6 - version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.7)(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/router': - specifier: 20.3.6 - version: 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + specifier: 20.3.7 + version: 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@schematics/angular': specifier: workspace:* version: link:../../schematics/angular @@ -761,7 +761,7 @@ importers: version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 20.3.0 - version: 20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + version: 20.3.0(@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) undici: specifier: 7.13.0 version: 7.13.0 @@ -845,7 +845,7 @@ importers: version: link:../schematics '@inquirer/prompts': specifier: 7.8.2 - version: 7.8.2(@types/node@24.8.1) + version: 7.8.2(@types/node@24.9.1) ansi-colors: specifier: 4.1.3 version: 4.1.3 @@ -859,11 +859,11 @@ importers: specifier: workspace:0.0.0-PLACEHOLDER version: link:../../angular_devkit/core '@angular/compiler': - specifier: 20.3.6 - version: 20.3.6 + specifier: 20.3.7 + version: 20.3.7 '@angular/compiler-cli': - specifier: 20.3.6 - version: 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) + specifier: 20.3.7 + version: 20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -975,46 +975,46 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular/animations@20.3.6': - resolution: {integrity: sha512-qNaVvEOKvigoCQMg0ABnq44HhiHqKD4WN3KoUcXneklcMYCzFE5nuQxKylfWzCRiI5XqiJ9pqiL1m2D7o+Vdiw==} + '@angular/animations@20.3.7': + resolution: {integrity: sha512-i655RaL0zmLE3OESUlDnRNBDRIMW/67nTQvMqP6V1cQ42l2+SMJtREsxmX6cWt55/qvvgeytAA6aBN4aerBl5A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.6 + '@angular/core': 20.3.7 - '@angular/cdk@20.2.9': - resolution: {integrity: sha512-rbY1AMz9389WJI29iAjWp4o0QKRQHCrQQUuP0ctNQzh1tgWpwiRLx8N4yabdVdsCA846vPsyKJtBlSNwKMsjJA==} + '@angular/cdk@20.2.10': + resolution: {integrity: sha512-d95C2r3JP11KCahouWmPaxswz/EE7Zn1k8ocoGt70jl33x42Sg96vAHeOpnQ4yfrdA4W7Q+eWB/NqqvAGCzOPQ==} 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.3.6': - resolution: {integrity: sha512-+gHMuFe0wz4f+vfGZ2q+fSQSYaY7KlN7QdDrFqLnA7H2sythzhXvRbXEtp4DkPjihh9gupXg2MeLh1ROy5AfSw==} + '@angular/common@20.3.7': + resolution: {integrity: sha512-uf8dXYTJbedk/wudkt2MfbtvN/T97aEZBtOTq8/IFQQZ3722rag6D+Cg76e5hBccROOn+ueGJX2gpxz02phTwA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.6 + '@angular/core': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.6': - resolution: {integrity: sha512-VOFRBx9fBt2jW9I8qD23fwGeKxBI8JssJBAMqnFPl3k59VJWHQi6LlXZCLCBNdfwflTJdKeRvdgT51Q0k6tnFQ==} + '@angular/compiler-cli@20.3.7': + resolution: {integrity: sha512-viZwWlwc1BAqryRJE0Wq2WgAxDaW9fuwtYHYrOWnIn9sy9KemKmR6RmU9VRydrwUROOlqK49R9+RC1wQ6sYwqA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.6 + '@angular/compiler': 20.3.7 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.6': - resolution: {integrity: sha512-OdjXBsAsnn7qiW6fSHClwn9XwjVxhtO9+RbDc6Mf+YPCnJq0s8T78H2fc8VdJFp/Rs+tMZcwwjd9VZPm8+2XWA==} + '@angular/compiler@20.3.7': + resolution: {integrity: sha512-EouHO15dUsgnFArj0M25R8cOPVoUfiFYSt6iXnMO8+S4dY1fDEmbFqkW5smlP66HL5Gys59Nwb5inejfIWHrLw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.6': - resolution: {integrity: sha512-sDURQWnjwE4Y750u/5qwkZEYMoI4CrKghnx4aKulxCnohR3//C78wvz6p8MtCuqYfzGkdQZDYFg8tgAz17qgPw==} + '@angular/core@20.3.7': + resolution: {integrity: sha512-2UuYzC2A5SUtu33tYTN411Wk0WilA+2Uld/GP3O6mragw1O7v/M8pMFmbe9TR5Ah/abRJIocWGlNqeztZmQmrw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.6 + '@angular/compiler': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1023,74 +1023,74 @@ packages: zone.js: optional: true - '@angular/forms@20.3.6': - resolution: {integrity: sha512-tBGo/LBtCtSrClMY4DTm/3UiSjqLLMEYXS/4E0nW1mFDv7ulKnaAQB+KbfBmmTHYxlKLs+SxjKv6GoydMPSurA==} + '@angular/forms@20.3.7': + resolution: {integrity: sha512-uOCGCoqXeAWIlQMWiIeed/W8g8h2tk91YemMI+Ce1VQ/36Xfft40Bouz4eKcvJV6kLXGygdpWjzFGz32CE+3Og==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.6 - '@angular/core': 20.3.6 - '@angular/platform-browser': 20.3.6 + '@angular/common': 20.3.7 + '@angular/core': 20.3.7 + '@angular/platform-browser': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.6': - resolution: {integrity: sha512-isOHiGYHSK+ySK8ry21PGO3jpJpF90E3J2BZ+LUhzpi1SzFBguEVg7j8fvbCLodiwweOnuAiKEHO0F3WpfCQ9Q==} + '@angular/localize@20.3.7': + resolution: {integrity: sha512-FYuuwU9ujiVT+0xjMIutaUT2PErV4AvxeAPWMlYRA1/yQxqn1VyNUd6kHPjAV+yrZg9Q0MDco2/c0Lh8rmAhSA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.6 - '@angular/compiler-cli': 20.3.6 + '@angular/compiler': 20.3.7 + '@angular/compiler-cli': 20.3.7 - '@angular/material@20.2.9': - resolution: {integrity: sha512-xo/ozyRXCoJMi89XLTJI6fdPKBv2wBngWMiCrtTg23+pHbuyA/kDbk3v62eJkDD1xdhC4auXaIHu4Ddf5zTgSA==} + '@angular/material@20.2.10': + resolution: {integrity: sha512-WkJfUu7KiQY2lqHjMZtEKBG653sPmky0nytTMASsfQ/xUs56W3CAAEOuKhSyCNKsNeFJZS/NgJnvlpRzcE5k6g==} peerDependencies: - '@angular/cdk': 20.2.9 + '@angular/cdk': 20.2.10 '@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/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e} - version: 0.0.0-c584c3565b71c7a8cda81d55bb14e3e66ef934da + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7} + version: 0.0.0-43d4ea5534ce399657a64c94a9dc1ea883324804 hasBin: true - '@angular/platform-browser@20.3.6': - resolution: {integrity: sha512-gFp1yd+HtRN8XdpMatRLO5w6FLIzsnF31lD2Duo4BUTCoMAMdfaNT6FtcvNdKu7ANo27Ke26fxEEE2bh6FU98A==} + '@angular/platform-browser@20.3.7': + resolution: {integrity: sha512-AbLtyR7fVEGDYyrz95dP2pc69J5XIjLLsFNAuNQPzNX02WPoAxtrWrNY6UnTzGoSrCc5F52hiL2Uo6yPZTiJcg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.6 - '@angular/common': 20.3.6 - '@angular/core': 20.3.6 + '@angular/animations': 20.3.7 + '@angular/common': 20.3.7 + '@angular/core': 20.3.7 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.6': - resolution: {integrity: sha512-fWF20pZYt8+4ZbNEwQsSgvBc11g8QWiVW7a0ybPvn7fy4LsTLWPzpolGK54k3FqWTQsZfzt+tVcNS709FPETfw==} + '@angular/platform-server@20.3.7': + resolution: {integrity: sha512-ADqOwqeUpTkp97SUpNO4jZ0o9Du7oBpi0mqzLx/c1dQYgL5hKAZYpa7bpG/edn2nSMHXwQAaGw7t+MTmU7elxQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.6 - '@angular/compiler': 20.3.6 - '@angular/core': 20.3.6 - '@angular/platform-browser': 20.3.6 + '@angular/common': 20.3.7 + '@angular/compiler': 20.3.7 + '@angular/core': 20.3.7 + '@angular/platform-browser': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.6': - resolution: {integrity: sha512-fSAYOR9nKpH5PoBYFNdII3nAFl2maUrYiISU33CnGwb7J7Q0s09k231c/P5tVN4URi+jdADVwiBI8cIYk8SVrg==} + '@angular/router@20.3.7': + resolution: {integrity: sha512-Lq7mCNcLP1npmNh2JlNEe02YS2jNnaLnCy/t//o+Qq0c6DGV78JRl7pHubiB2R6XXlgvOcZWg88v94Li+y85Iw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.6 - '@angular/core': 20.3.6 - '@angular/platform-browser': 20.3.6 + '@angular/common': 20.3.7 + '@angular/core': 20.3.7 + '@angular/platform-browser': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.6': - resolution: {integrity: sha512-utHJCoEO4EKH372BSMnNbcR96yDVkUeV7xcJb+cw9ruTOxGvCG/DUWR1h64xk3Ns6nvFmggTnIVgnBDn+92VpQ==} + '@angular/service-worker@20.3.7': + resolution: {integrity: sha512-q9Q77wBBqScRJJQ7T+F0RepMY543Hm0HCZGvOujT+vQNFK3aRlWLlYenOUIhq2vlLXOhszCt8e5dY7/R+1eRWw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.6 + '@angular/core': 20.3.7 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -2787,8 +2787,8 @@ packages: '@octokit/openapi-types@26.0.0': resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} - '@octokit/plugin-paginate-rest@13.2.0': - resolution: {integrity: sha512-YuAlyjR8o5QoRSOvMHxSJzPtogkNMgeMv2mpccrvdUGeC3MKyfi/hS+KiFwyH/iRKIKyx+eIMsDjbt3p9r2GYA==} + '@octokit/plugin-paginate-rest@13.2.1': + resolution: {integrity: sha512-Tj4PkZyIL6eBMYcG/76QGsedF0+dWVeLhYprTmuFVVxzDW7PQh23tM0TP0z+1MvSkxB29YFZwnUX+cXfTiSdyw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2799,8 +2799,8 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@16.1.0': - resolution: {integrity: sha512-nCsyiKoGRnhH5LkH8hJEZb9swpqOcsW+VXv1QoyUNQXJeVODG4+xM6UICEqyqe9XFr6LkL8BIiFCPev8zMDXPw==} + '@octokit/plugin-rest-endpoint-methods@16.1.1': + resolution: {integrity: sha512-VztDkhM0ketQYSh5Im3IcKWFZl7VIrrsCaHbDINkdYeiiAsJzjhS2xRFCSJgfN6VOcsoW4laMtsmf3HcNqIimg==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2817,8 +2817,8 @@ packages: resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} engines: {node: '>= 20'} - '@octokit/types@15.0.0': - resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} + '@octokit/types@15.0.1': + resolution: {integrity: sha512-sdiirM93IYJ9ODDCBgmRPIboLbSkpLa5i+WLuXH8b8Atg+YMLAyLvDDhNWLV4OYd08tlvYfVm/dw88cqHWtw1Q==} '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -2949,16 +2949,16 @@ packages: resolution: {integrity: sha512-tNe7a6U4rCpxLMBaR0SIYTdjxGdL0Vwb3G1zY8++sPtHSvy7qd54u8CIB0Z+Y6t5tc9pNYMYCMwhE/wdSY7ltg==} engines: {node: '>=18.12'} - '@pnpm/dependency-path@1001.1.2': - resolution: {integrity: sha512-fih99/lY+HRRak0U0KMKAO7+nacilWMcvFTH6YDKzjCBTOhxDr6Eeap2mF7uf4ED4dnKsQVNUGmFpvaSXSuFCQ==} + '@pnpm/dependency-path@1001.1.3': + resolution: {integrity: sha512-ScPXDrlpNNrvV+l4Z1Mh7HjejkltQWfSa3PIaB+WJ3h+PoC1w5blbgfq6ENdHdkRU7L14ie/3MqUGMIx2gZldA==} engines: {node: '>=18.12'} '@pnpm/graceful-fs@1000.0.1': resolution: {integrity: sha512-JnzaAVFJIEgwTcB55eww8N3h5B6qJdZqDA2wYkSK+OcTvvMSQb9c2STMhBP6GfkWygG1fs3w8D7JRx9SPZnxJg==} engines: {node: '>=18.12'} - '@pnpm/types@1000.8.0': - resolution: {integrity: sha512-yx86CGHHquWAI0GgKIuV/RnYewcf5fVFZemC45C/K2cX0uV8GB8TUP541ZrokWola2fZx5sn1vL7xzbceRZfoQ==} + '@pnpm/types@1000.9.0': + resolution: {integrity: sha512-UvDTCxnbyqkTg2X0dBOuZ4IdFJ8g4UFu0Ybv/5/cZAxCWVhNl1hC/Xc9hR4tZrlBL0NRFePLRhO/iw9LmA1lbw==} engines: {node: '>=18.12'} '@protobufjs/aspromise@1.1.2': @@ -3536,8 +3536,8 @@ packages: '@types/node@22.18.10': resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} - '@types/node@24.8.1': - resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} + '@types/node@24.9.1': + resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} '@types/npm-package-arg@6.1.4': resolution: {integrity: sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q==} @@ -4660,8 +4660,8 @@ packages: resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} engines: {node: '>=18'} - conventional-commits-parser@6.2.0: - resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + conventional-commits-parser@6.2.1: + resolution: {integrity: sha512-20pyHgnO40rvfI0NGF/xiEoFMkXDtkF8FwHvk5BokoFoCuTQRI8vrNCNFWUOfuolKJMm1tPCHc8GgYEtr1XRNA==} engines: {node: '>=18'} hasBin: true @@ -8624,8 +8624,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.14.0: - resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -9335,28 +9335,28 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/cdk@20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.10(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.6 + '@angular/compiler': 20.3.7 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9370,30 +9370,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.6': + '@angular/compiler@20.3.7': dependencies: tslib: 2.8.1 - '@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.6 + '@angular/compiler': 20.3.7 zone.js: 0.15.1 - '@angular/forms@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@20.3.6(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(@angular/compiler@20.3.6)': + '@angular/localize@20.3.7(@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2))(@angular/compiler@20.3.7)': dependencies: - '@angular/compiler': 20.3.6 - '@angular/compiler-cli': 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) + '@angular/compiler': 20.3.7 + '@angular/compiler-cli': 20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2) '@babel/core': 7.28.3 '@types/babel__core': 7.20.5 tinyglobby: 0.2.14 @@ -9401,41 +9401,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/material@20.2.9(2a95e28ac5632fb7b160d9783a0bce26)': + '@angular/material@20.2.10(72d1932aa29c0670c8359e3ed8a5ff55)': dependencies: - '@angular/cdk': 20.2.9(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.10(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(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/3c4fd6f54f2c67ce5b9f1a32ce90e36ba2fada4e(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) '@google/genai': 1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.9.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/prompts': 7.9.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) '@octokit/auth-app': 8.1.1 '@octokit/core': 7.0.5 '@octokit/graphql': 9.0.2 '@octokit/graphql-schema': 15.26.0 '@octokit/openapi-types': 26.0.0 - '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) + '@octokit/plugin-paginate-rest': 13.2.1(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.1(@octokit/core@7.0.5) '@octokit/request-error': 7.0.1 '@octokit/rest': 22.0.0 - '@octokit/types': 15.0.0 - '@pnpm/dependency-path': 1001.1.2 + '@octokit/types': 15.0.1 + '@pnpm/dependency-path': 1001.1.3 '@types/cli-progress': 3.11.6 '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.12 - '@types/node': 24.8.1 + '@types/node': 24.9.1 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -9445,13 +9445,13 @@ snapshots: chalk: 5.6.2 cli-progress: 3.12.0 conventional-commits-filter: 5.0.0 - conventional-commits-parser: 6.2.0 + conventional-commits-parser: 6.2.1 ejs: 3.1.10 encoding: 0.1.13 fast-glob: 3.3.3 firebase: 12.4.0 folder-hash: 4.1.1(supports-color@10.2.2) - git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1) jasmine: 5.12.0 jasmine-core: 5.12.0 jasmine-reporters: 2.5.2 @@ -9472,35 +9472,35 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/platform-server@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.6)(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/platform-server@20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.7)(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.6 - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.7 + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@20.3.6(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.7(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.6(@angular/animations@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.6(@angular/core@20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.6(@angular/compiler@20.3.6)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -10188,13 +10188,13 @@ snapshots: '@colors/colors@1.5.0': {} - '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)': + '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1)': dependencies: '@types/semver': 7.7.1 semver: 7.7.2 optionalDependencies: conventional-commits-filter: 5.0.0 - conventional-commits-parser: 6.2.0 + conventional-commits-parser: 6.2.1 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -10803,244 +10803,244 @@ snapshots: '@inquirer/ansi@1.0.1': {} - '@inquirer/checkbox@4.2.4(@types/node@24.8.1)': + '@inquirer/checkbox@4.2.4(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/checkbox@4.3.0(@types/node@24.8.1)': + '@inquirer/checkbox@4.3.0(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/confirm@5.1.14(@types/node@24.8.1)': + '@inquirer/confirm@5.1.14(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/confirm@5.1.19(@types/node@24.8.1)': + '@inquirer/confirm@5.1.19(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/core@10.2.2(@types/node@24.8.1)': + '@inquirer/core@10.2.2(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/core@10.3.0(@types/node@24.8.1)': + '@inquirer/core@10.3.0(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.1 '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/editor@4.2.20(@types/node@24.8.1)': + '@inquirer/editor@4.2.20(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/external-editor': 1.0.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/external-editor': 1.0.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/editor@4.2.21(@types/node@24.8.1)': + '@inquirer/editor@4.2.21(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/external-editor': 1.0.2(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/external-editor': 1.0.2(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/expand@4.0.20(@types/node@24.8.1)': + '@inquirer/expand@4.0.20(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/expand@4.0.21(@types/node@24.8.1)': + '@inquirer/expand@4.0.21(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/external-editor@1.0.2(@types/node@24.8.1)': + '@inquirer/external-editor@1.0.2(@types/node@24.9.1)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 '@inquirer/figures@1.0.13': {} '@inquirer/figures@1.0.14': {} - '@inquirer/input@4.2.4(@types/node@24.8.1)': + '@inquirer/input@4.2.4(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/input@4.2.5(@types/node@24.8.1)': + '@inquirer/input@4.2.5(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/number@3.0.20(@types/node@24.8.1)': + '@inquirer/number@3.0.20(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/number@3.0.21(@types/node@24.8.1)': + '@inquirer/number@3.0.21(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/password@4.0.20(@types/node@24.8.1)': + '@inquirer/password@4.0.20(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/password@4.0.21(@types/node@24.8.1)': + '@inquirer/password@4.0.21(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 - - '@inquirer/prompts@7.8.2(@types/node@24.8.1)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.8.1) - '@inquirer/confirm': 5.1.14(@types/node@24.8.1) - '@inquirer/editor': 4.2.20(@types/node@24.8.1) - '@inquirer/expand': 4.0.20(@types/node@24.8.1) - '@inquirer/input': 4.2.4(@types/node@24.8.1) - '@inquirer/number': 3.0.20(@types/node@24.8.1) - '@inquirer/password': 4.0.20(@types/node@24.8.1) - '@inquirer/rawlist': 4.1.8(@types/node@24.8.1) - '@inquirer/search': 3.1.3(@types/node@24.8.1) - '@inquirer/select': 4.3.4(@types/node@24.8.1) + '@types/node': 24.9.1 + + '@inquirer/prompts@7.8.2(@types/node@24.9.1)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.9.1) + '@inquirer/confirm': 5.1.14(@types/node@24.9.1) + '@inquirer/editor': 4.2.20(@types/node@24.9.1) + '@inquirer/expand': 4.0.20(@types/node@24.9.1) + '@inquirer/input': 4.2.4(@types/node@24.9.1) + '@inquirer/number': 3.0.20(@types/node@24.9.1) + '@inquirer/password': 4.0.20(@types/node@24.9.1) + '@inquirer/rawlist': 4.1.8(@types/node@24.9.1) + '@inquirer/search': 3.1.3(@types/node@24.9.1) + '@inquirer/select': 4.3.4(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 - - '@inquirer/prompts@7.9.0(@types/node@24.8.1)': - dependencies: - '@inquirer/checkbox': 4.3.0(@types/node@24.8.1) - '@inquirer/confirm': 5.1.19(@types/node@24.8.1) - '@inquirer/editor': 4.2.21(@types/node@24.8.1) - '@inquirer/expand': 4.0.21(@types/node@24.8.1) - '@inquirer/input': 4.2.5(@types/node@24.8.1) - '@inquirer/number': 3.0.21(@types/node@24.8.1) - '@inquirer/password': 4.0.21(@types/node@24.8.1) - '@inquirer/rawlist': 4.1.9(@types/node@24.8.1) - '@inquirer/search': 3.2.0(@types/node@24.8.1) - '@inquirer/select': 4.4.0(@types/node@24.8.1) + '@types/node': 24.9.1 + + '@inquirer/prompts@7.9.0(@types/node@24.9.1)': + dependencies: + '@inquirer/checkbox': 4.3.0(@types/node@24.9.1) + '@inquirer/confirm': 5.1.19(@types/node@24.9.1) + '@inquirer/editor': 4.2.21(@types/node@24.9.1) + '@inquirer/expand': 4.0.21(@types/node@24.9.1) + '@inquirer/input': 4.2.5(@types/node@24.9.1) + '@inquirer/number': 3.0.21(@types/node@24.9.1) + '@inquirer/password': 4.0.21(@types/node@24.9.1) + '@inquirer/rawlist': 4.1.9(@types/node@24.9.1) + '@inquirer/search': 3.2.0(@types/node@24.9.1) + '@inquirer/select': 4.4.0(@types/node@24.9.1) optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/rawlist@4.1.8(@types/node@24.8.1)': + '@inquirer/rawlist@4.1.8(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/rawlist@4.1.9(@types/node@24.8.1)': + '@inquirer/rawlist@4.1.9(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/search@3.1.3(@types/node@24.8.1)': + '@inquirer/search@3.1.3(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/search@3.2.0(@types/node@24.8.1)': + '@inquirer/search@3.2.0(@types/node@24.9.1)': dependencies: - '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/select@4.3.4(@types/node@24.8.1)': + '@inquirer/select@4.3.4(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.8.1) + '@inquirer/core': 10.2.2(@types/node@24.9.1) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/select@4.4.0(@types/node@24.8.1)': + '@inquirer/select@4.4.0(@types/node@24.9.1)': dependencies: '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@24.8.1) + '@inquirer/core': 10.3.0(@types/node@24.9.1) '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.8.1) + '@inquirer/type': 3.0.9(@types/node@24.9.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/type@3.0.8(@types/node@24.8.1)': + '@inquirer/type@3.0.8(@types/node@24.9.1)': optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 - '@inquirer/type@3.0.9(@types/node@24.8.1)': + '@inquirer/type@3.0.9(@types/node@24.9.1)': optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 '@isaacs/balanced-match@4.0.1': {} @@ -11126,10 +11126,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.8.1))(@types/node@24.8.1)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.9.1))(@types/node@24.9.1)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@24.8.1) - '@inquirer/type': 3.0.8(@types/node@24.8.1) + '@inquirer/prompts': 7.8.2(@types/node@24.9.1) + '@inquirer/type': 3.0.8(@types/node@24.9.1) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11348,7 +11348,7 @@ snapshots: '@octokit/auth-oauth-user': 6.0.1 '@octokit/request': 10.0.5 '@octokit/request-error': 7.0.1 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.2 universal-user-agent: 7.0.3 @@ -11358,14 +11358,14 @@ snapshots: '@octokit/auth-oauth-device': 8.0.2 '@octokit/auth-oauth-user': 6.0.1 '@octokit/request': 10.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 universal-user-agent: 7.0.3 '@octokit/auth-oauth-device@8.0.2': dependencies: '@octokit/oauth-methods': 6.0.1 '@octokit/request': 10.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 universal-user-agent: 7.0.3 '@octokit/auth-oauth-user@6.0.1': @@ -11373,7 +11373,7 @@ snapshots: '@octokit/auth-oauth-device': 8.0.2 '@octokit/oauth-methods': 6.0.1 '@octokit/request': 10.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 universal-user-agent: 7.0.3 '@octokit/auth-token@6.0.0': {} @@ -11384,13 +11384,13 @@ snapshots: '@octokit/graphql': 9.0.2 '@octokit/request': 10.0.5 '@octokit/request-error': 7.0.1 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 '@octokit/endpoint@11.0.1': dependencies: - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 universal-user-agent: 7.0.3 '@octokit/graphql-schema@15.26.0': @@ -11401,7 +11401,7 @@ snapshots: '@octokit/graphql@9.0.2': dependencies: '@octokit/request': 10.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 universal-user-agent: 7.0.3 '@octokit/oauth-authorization-url@8.0.0': {} @@ -11411,44 +11411,44 @@ snapshots: '@octokit/oauth-authorization-url': 8.0.0 '@octokit/request': 10.0.5 '@octokit/request-error': 7.0.1 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 '@octokit/openapi-types@26.0.0': {} - '@octokit/plugin-paginate-rest@13.2.0(@octokit/core@7.0.5)': + '@octokit/plugin-paginate-rest@13.2.1(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 - '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.5)': + '@octokit/plugin-rest-endpoint-methods@16.1.1(@octokit/core@7.0.5)': dependencies: '@octokit/core': 7.0.5 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 '@octokit/request-error@7.0.1': dependencies: - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 '@octokit/request@10.0.5': dependencies: '@octokit/endpoint': 11.0.1 '@octokit/request-error': 7.0.1 - '@octokit/types': 15.0.0 + '@octokit/types': 15.0.1 fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.3 '@octokit/rest@22.0.0': dependencies: '@octokit/core': 7.0.5 - '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-paginate-rest': 13.2.1(@octokit/core@7.0.5) '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.5) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.1(@octokit/core@7.0.5) - '@octokit/types@15.0.0': + '@octokit/types@15.0.1': dependencies: '@octokit/openapi-types': 26.0.0 @@ -11546,17 +11546,17 @@ snapshots: '@pnpm/crypto.polyfill@1000.1.0': {} - '@pnpm/dependency-path@1001.1.2': + '@pnpm/dependency-path@1001.1.3': dependencies: '@pnpm/crypto.hash': 1000.2.1 - '@pnpm/types': 1000.8.0 + '@pnpm/types': 1000.9.0 semver: 7.7.2 '@pnpm/graceful-fs@1000.0.1': dependencies: graceful-fs: 4.2.11 - '@pnpm/types@1000.8.0': {} + '@pnpm/types@1000.9.0': {} '@protobufjs/aspromise@1.1.2': {} @@ -12094,9 +12094,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.8.1': + '@types/node@24.9.1': dependencies: - undici-types: 7.14.0 + undici-types: 7.16.0 '@types/npm-package-arg@6.1.4': {} @@ -12485,9 +12485,9 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -12497,13 +12497,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -13603,7 +13603,7 @@ snapshots: conventional-commits-filter@5.0.0: {} - conventional-commits-parser@6.2.0: + conventional-commits-parser@6.2.1: dependencies: meow: 13.2.0 @@ -14791,9 +14791,9 @@ snapshots: dependencies: assert-plus: 1.0.0 - git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1): dependencies: - '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -16228,10 +16228,10 @@ snapshots: netmask@2.0.2: {} - ng-packagr@20.3.0(@angular/compiler-cli@20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): + ng-packagr@20.3.0(@angular/compiler-cli@20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 20.3.6(@angular/compiler@20.3.6)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.7(@angular/compiler@20.3.7)(typescript@5.9.2) '@rollup/plugin-json': 6.1.0(rollup@4.52.3) '@rollup/wasm-node': 4.52.4 ajv: 8.17.1 @@ -18192,7 +18192,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.14.0: {} + undici-types@7.16.0: {} undici@5.29.0: dependencies: @@ -18368,13 +18368,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.2.4(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -18389,7 +18389,7 @@ snapshots: - tsx - yaml - vite@7.1.11(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.11(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18398,7 +18398,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18407,7 +18407,7 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -18416,7 +18416,7 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -18425,11 +18425,11 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.8.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.9.1)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -18447,11 +18447,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.8.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.9.1)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.8.1 + '@types/node': 24.9.1 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From bdc584b5693090a3fc430e2c89af942eeb39b208 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 23 Oct 2025 05:06:19 +0000 Subject: [PATCH 203/228] build: update dependency aspect_rules_js to v2.7.0 See associated pull request for more information. --- MODULE.bazel | 2 +- MODULE.bazel.lock | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 5aef813e81ac..b3af7007f9ad 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.3.1") bazel_dep(name = "rules_nodejs", version = "6.6.0") -bazel_dep(name = "aspect_rules_js", version = "2.6.2") +bazel_dep(name = "aspect_rules_js", version = "2.7.0") bazel_dep(name = "aspect_rules_ts", version = "3.7.0") bazel_dep(name = "rules_pkg", version = "0.8.1") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 5455a108bfcd..9d1fff2fa682 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -27,7 +27,8 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5", "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/MODULE.bazel": "ed2a871f4ab8fbde0cab67c425745069d84ea64b64313fa1a2954017326511f5", - "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/source.json": "59933fb8ddabd9740a3c12ff5552f06f2b8d68c3633883c681c757bf227c3763", + "https://bcr.bazel.build/modules/aspect_rules_js/2.7.0/MODULE.bazel": "ac879ee86f124c827e4e87942b3797ff4aaf90360eb9d7bff5321fc45d5ebefb", + "https://bcr.bazel.build/modules/aspect_rules_js/2.7.0/source.json": "20c34042beca8ea1e5996989dc163a75cb04ec4e75dc64f78d936497aea78e4b", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/source.json": "4a8115ea69dd796353232ff27a7e93e6d7d1ad43bea1eb33c6bd3acfa656bf2e", @@ -206,7 +207,7 @@ "moduleExtensions": { "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "W+cy7GU3S29h8PPWylmMlPB5Z16vuZzJX4k0jlXGFoc=", + "bzlTransitiveDigest": "2t/OGeKfMCAl1xoAFVhaT+JKQb5zexk164MjT7t8SPE=", "usagesDigest": "H070ZIHhSlR+Han009l+GdDSuT9AJssdyVHQ7xjstSo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -391,8 +392,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "kFo9dd9KDRPKtK0RkVyoouzNI0l+bqG8cEaw+4+ZnVw=", - "usagesDigest": "dwcGULhCgltHeTzlHJu5cjVHXt6WfLzA3yTc6cHWmPo=", + "bzlTransitiveDigest": "SVyYFkMQbjQ0jUKo5pfA4RvHwE9U+087GVDEKYPcTSU=", + "usagesDigest": "IVicAE5kmPjEcCQ3BjtqveHxlxyM0WJ/OuayGov8SLE=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -604,7 +605,7 @@ "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", - "usagesDigest": "uS24fACgJK/VGwdRorIVcVBYji/Ibx5tHzgIFCn5iZQ=", + "usagesDigest": "+Hur2pWe/TT3snEvJg4r10bQxD7lA5FHQPZQEHH32bY=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -614,7 +615,7 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.6.2", + "aspect_rules_js": "2.7.0", "aspect_rules_ts": "3.7.0", "aspect_rules_esbuild": "0.23.0", "aspect_tools_telemetry": "0.2.8" @@ -1118,7 +1119,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "71PwVsMlLx+RWdt1SI9nSqRHX7DX/NstWwr7/XBxEMs=", - "usagesDigest": "UMPJAxKFUmrhUd/xrzHapBiQuXI2tFY2p5YhjbyQDHY=", + "usagesDigest": "lqo/UXkPCwj19uB1o0D7KeWvm99ttcmhk7BOoYRXRp0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, From e2543b1ea4d6859a5ec9b5bdd58ca4de629d191b Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 23 Oct 2025 07:06:49 +0000 Subject: [PATCH 204/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 44 ++++++++-------- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 9 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index a9733b11fe7b..b737d6c7a0f2 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + - uses: angular/dev-infra/github-actions/branch-manager@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bcfc0802c60..f868703aa90d 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 200a6b3fd5e7..0f7de6bdbb5d 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + - uses: angular/dev-infra/github-actions/pull-request-labeling@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + - uses: angular/dev-infra/github-actions/post-approval-changes@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 83f9811ddb54..3f83c558df51 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + - uses: angular/dev-infra/github-actions/feature-request@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 17118598762c..693c0ce45a36 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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 93723221e592..19a3df3fcbf3 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/linting/licenses@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - 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@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@43d4ea5534ce399657a64c94a9dc1ea883324804 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index b3af7007f9ad..dc4d51b99f64 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "43d4ea5534ce399657a64c94a9dc1ea883324804", + commit = "e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 145e02ed2d86..cda94a985864 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.7", "@angular/localize": "20.3.7", "@angular/material": "20.2.10", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#a3426d37e6f9781b00650a767eb5b3967cdb94f7", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#299992f45450bca8e547d90a4bf5e5d8ca60428a", "@angular/platform-browser": "20.3.7", "@angular/platform-server": "20.3.7", "@angular/router": "20.3.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de1d0e1e6804..231292aa165c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.10 version: 20.2.10(72d1932aa29c0670c8359e3ed8a5ff55) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#a3426d37e6f9781b00650a767eb5b3967cdb94f7 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#299992f45450bca8e547d90a4bf5e5d8ca60428a + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a(@modelcontextprotocol/sdk@1.17.3) '@angular/platform-browser': specifier: 20.3.7 version: 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7} - version: 0.0.0-43d4ea5534ce399657a64c94a9dc1ea883324804 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a} + version: 0.0.0-e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae hasBin: true '@angular/platform-browser@20.3.7': @@ -9411,7 +9411,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/a3426d37e6f9781b00650a767eb5b3967cdb94f7(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a(@modelcontextprotocol/sdk@1.17.3)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 7b521ddb0eaad4906fe27bdd9e59faf5ddb649c6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 23 Oct 2025 06:06:28 +0000 Subject: [PATCH 205/228] build: update pnpm to v10.19.0 See associated pull request for more information. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index cda94a985864..dd7369dfdd50 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,12 @@ "type": "git", "url": "https://github.com/angular/angular-cli.git" }, - "packageManager": "pnpm@10.18.3", + "packageManager": "pnpm@10.19.0", "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.18.3" + "pnpm": "10.19.0" }, "author": "Angular Authors", "license": "MIT", From 813cba9b9bfe60e874595ce25608ca85a890f6bf Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 23 Oct 2025 07:35:29 +0000 Subject: [PATCH 206/228] fix(@angular-devkit/build-angular): expand jest and jest-environment-jsdom to allow version 30 This commit expands the peer deps of these dependencies to allow version 30. --- packages/angular_devkit/build_angular/package.json | 4 ++-- .../angular_devkit/build_angular/src/builders/jest/index.ts | 2 +- tests/legacy-cli/e2e/utils/jest.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 7d581aef8934..f37de4ae6ca2 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -81,8 +81,8 @@ "@angular/ssr": "^0.0.0-PLACEHOLDER", "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", + "jest": "^29.5.0 || ^30.2.0", + "jest-environment-jsdom": "^29.5.0 || ^30.2.0", "karma": "^6.3.0", "ng-packagr": "0.0.0-NG-PACKAGR-PEER-DEP", "protractor": "^7.0.0", diff --git a/packages/angular_devkit/build_angular/src/builders/jest/index.ts b/packages/angular_devkit/build_angular/src/builders/jest/index.ts index c972dfa41a46..8cdcf59aad19 100644 --- a/packages/angular_devkit/build_angular/src/builders/jest/index.ts +++ b/packages/angular_devkit/build_angular/src/builders/jest/index.ts @@ -116,7 +116,7 @@ export default createBuilder( '--experimental-vm-modules', jest, - `--rootDir="${testOut}"`, + `--rootDir=${testOut}`, `--config=${path.join(__dirname, 'jest.config.mjs')}`, '--testEnvironment=jsdom', diff --git a/tests/legacy-cli/e2e/utils/jest.ts b/tests/legacy-cli/e2e/utils/jest.ts index 904cc6f903d6..db67b4aa9cb1 100644 --- a/tests/legacy-cli/e2e/utils/jest.ts +++ b/tests/legacy-cli/e2e/utils/jest.ts @@ -8,7 +8,7 @@ export async function applyJestBuilder( polyfills: ['zone.js', 'zone.js/testing'], }, ): Promise { - await silentNpm('install', 'jest@29.5.0', 'jest-environment-jsdom@29.5.0', '--save-dev'); + await silentNpm('install', 'jest@30.2.0', 'jest-environment-jsdom@30.2.0', '--save-dev'); await updateJsonFile('angular.json', (json) => { const projects = Object.values(json['projects']); From 15b449512f9585815711bf4b8b72d3a3f53af56f Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 23 Oct 2025 12:07:52 +0000 Subject: [PATCH 207/228] build: update cross-repo angular dependencies See associated pull request for more information. --- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/ci.yml | 52 +++++----- .github/workflows/dev-infra.yml | 4 +- .github/workflows/feature-requests.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 44 ++++----- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 95 +++---------------- 9 files changed, 69 insertions(+), 140 deletions(-) diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index b737d6c7a0f2..439bf1a78f22 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + - uses: angular/dev-infra/github-actions/branch-manager@ab6a00e9a219c2169ae0540cc5a32be5f481e004 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f868703aa90d..ec086242138b 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -61,11 +61,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - run: pnpm admin snapshots --verbose env: SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 0f7de6bdbb5d..512efe35b754 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + - uses: angular/dev-infra/github-actions/pull-request-labeling@ab6a00e9a219c2169ae0540cc5a32be5f481e004 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + - uses: angular/dev-infra/github-actions/post-approval-changes@ab6a00e9a219c2169ae0540cc5a32be5f481e004 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/feature-requests.yml b/.github/workflows/feature-requests.yml index 3f83c558df51..c74b6262bf26 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + - uses: angular/dev-infra/github-actions/feature-request@ab6a00e9a219c2169ae0540cc5a32be5f481e004 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 693c0ce45a36..4fcfe65f1417 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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 19a3df3fcbf3..11599aae7ee6 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup ESLint Caching uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/linting/licenses@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build release targets @@ -93,11 +93,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - 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@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/setup@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + uses: angular/dev-infra/github-actions/bazel/configure-remote@ab6a00e9a219c2169ae0540cc5a32be5f481e004 - name: Run CLI E2E tests run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} diff --git a/MODULE.bazel b/MODULE.bazel index dc4d51b99f64..d78fba4fc6a2 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -33,7 +33,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae", + commit = "ab6a00e9a219c2169ae0540cc5a32be5f481e004", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index dd7369dfdd50..300bf966eeba 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@angular/forms": "20.3.7", "@angular/localize": "20.3.7", "@angular/material": "20.2.10", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#299992f45450bca8e547d90a4bf5e5d8ca60428a", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#b69a61793bd6ba935af262297688408d0b48252e", "@angular/platform-browser": "20.3.7", "@angular/platform-server": "20.3.7", "@angular/router": "20.3.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 231292aa165c..52eca2c2f2ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 20.2.10 version: 20.2.10(72d1932aa29c0670c8359e3ed8a5ff55) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#299992f45450bca8e547d90a4bf5e5d8ca60428a - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a(@modelcontextprotocol/sdk@1.17.3) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#b69a61793bd6ba935af262297688408d0b48252e + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b69a61793bd6ba935af262297688408d0b48252e '@angular/platform-browser': specifier: 20.3.7 version: 20.3.7(@angular/animations@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.7(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.7(@angular/compiler@20.3.7)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -1050,9 +1050,9 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a} - version: 0.0.0-e6f02a31dfb48ab1dfc1232da3ccbfce328fe2ae + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b69a61793bd6ba935af262297688408d0b48252e': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b69a61793bd6ba935af262297688408d0b48252e} + version: 0.0.0-ab6a00e9a219c2169ae0540cc5a32be5f481e004 hasBin: true '@angular/platform-browser@20.3.7': @@ -2113,11 +2113,11 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.25.0': - resolution: {integrity: sha512-IBNyel/umavam98SQUfvQSvh/Rp6Ql2fysQLqPyWZr5K8d768X9AO+JZU4o+3qvFDUBA0dVYUSkxyYonVcICvA==} + '@google/genai@1.26.0': + resolution: {integrity: sha512-cy5y9RgN4jBK8zr+ePgZd0To1HDpzpjIgSM6aRCZnvYR+JupGtgc1SkkOCCi1MNZho7/MuKKdnQTLhhP8OQNvg==} engines: {node: '>=20.0.0'} peerDependencies: - '@modelcontextprotocol/sdk': ^1.11.4 + '@modelcontextprotocol/sdk': ^1.20.1 peerDependenciesMeta: '@modelcontextprotocol/sdk': optional: true @@ -5578,18 +5578,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} - gaxios@7.1.2: resolution: {integrity: sha512-/Szrn8nr+2TsQT1Gp8iIe/BEytJmbyfrbFh419DfGQSkEgNEhbPi7JRJuughjkTzPWgU9gBQf5AVu3DbHt0OXA==} engines: {node: '>=18'} - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} - gcp-metadata@7.0.1: resolution: {integrity: sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==} engines: {node: '>=18'} @@ -5703,18 +5695,10 @@ packages: resolution: {integrity: sha512-CmIrSy1bqMQUsPmA9+hcSbAXL80cFhu40cGMUjCaLpNKVzzvi+0uAHq8GNZxkoGYIsTX4ZQ7e4aInAqWxgn4fg==} engines: {node: '>=18'} - google-auth-library@9.15.1: - resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} - engines: {node: '>=14'} - google-gax@5.0.4: resolution: {integrity: sha512-HmQ6zIYBs2EikTk+kjeHmtHprNTEpsnVaKONw9cwZZwUNCkUb+D5RYrJpCxyjdvIDvJp3wLbVReolJLRZRms1g==} engines: {node: '>=18'} - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} - google-logging-utils@1.1.1: resolution: {integrity: sha512-rcX58I7nqpu4mbKztFeOAObbomBbHU2oIb/d3tJfF3dizGSApqtSwYJigGCooHdnMyQBIw8BrWyK96w3YXgr6A==} engines: {node: '>=14'} @@ -5745,10 +5729,6 @@ packages: peerDependencies: protobufjs: '*' - gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} - engines: {node: '>=14.0.0'} - gtoken@8.0.0: resolution: {integrity: sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==} engines: {node: '>=18'} @@ -8717,10 +8697,6 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -9411,11 +9387,11 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/299992f45450bca8e547d90a4bf5e5d8ca60428a(@modelcontextprotocol/sdk@1.17.3)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/b69a61793bd6ba935af262297688408d0b48252e': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@google/genai': 1.26.0(bufferutil@4.0.9)(supports-color@10.2.2)(utf-8-validate@6.0.5) '@inquirer/prompts': 7.9.0(@types/node@24.9.1) '@inquirer/type': 3.0.9(@types/node@24.9.1) '@octokit/auth-app': 8.1.1 @@ -10750,15 +10726,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.25.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.26.0(bufferutil@4.0.9)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: - google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) - optionalDependencies: - '@modelcontextprotocol/sdk': 1.17.3 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate @@ -14699,17 +14672,6 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1(encoding@0.1.13)(supports-color@10.2.2): - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) - is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - gaxios@7.1.2(supports-color@10.2.2): dependencies: extend: 3.0.2 @@ -14718,15 +14680,6 @@ snapshots: transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13)(supports-color@10.2.2): - dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) - google-logging-utils: 0.0.2 - json-bigint: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color - gcp-metadata@7.0.1(supports-color@10.2.2): dependencies: gaxios: 7.1.2(supports-color@10.2.2) @@ -14879,18 +14832,6 @@ snapshots: transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13)(supports-color@10.2.2): - dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) - gcp-metadata: 6.1.1(encoding@0.1.13)(supports-color@10.2.2) - gtoken: 7.1.0(encoding@0.1.13)(supports-color@10.2.2) - jws: 4.0.0 - transitivePeerDependencies: - - encoding - - supports-color - google-gax@5.0.4(supports-color@10.2.2): dependencies: '@grpc/grpc-js': 1.14.0 @@ -14906,8 +14847,6 @@ snapshots: transitivePeerDependencies: - supports-color - google-logging-utils@0.0.2: {} - google-logging-utils@1.1.1: {} gopd@1.2.0: {} @@ -14928,14 +14867,6 @@ snapshots: '@grpc/grpc-js': 1.14.0 protobufjs: 7.5.4 - gtoken@7.1.0(encoding@0.1.13)(supports-color@10.2.2): - dependencies: - gaxios: 6.7.1(encoding@0.1.13)(supports-color@10.2.2) - jws: 4.0.0 - transitivePeerDependencies: - - encoding - - supports-color - gtoken@8.0.0(supports-color@10.2.2): dependencies: gaxios: 7.1.2(supports-color@10.2.2) @@ -18271,8 +18202,6 @@ snapshots: uuid@8.3.2: {} - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: From 2c7581c4b5bb50b2354c0ceda71936487f9ee9ab Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:41:50 -0400 Subject: [PATCH 208/228] refactor(@angular/build): allow Bazel to inject a custom esbuild plugin Introduces a mechanism to dynamically load a custom esbuild plugin when the application builder is executed within a Bazel environment. This is enabled by a new `bazelEsbuildPluginPath` option, which is derived from the `NG_INTERNAL_ESBUILD_PLUGINS_DO_NOT_USE` environment variable. The path is only resolved if the `BAZEL_BINDIR` and `JS_BINARY__EXECROOT` environment variables are also present, ensuring the logic is only active during a Bazel build. The builder dynamically imports the plugin from the specified path and adds it to the esbuild pipeline, allowing for build-system-specific customizations. (cherry picked from commit ec739d79e042c2b33fd84ed9aede7c88a82e167e) --- .../angular/build/src/builders/application/index.ts | 10 +++++++++- .../angular/build/src/utils/environment-options.ts | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/application/index.ts b/packages/angular/build/src/builders/application/index.ts index 8f11f2fd8001..b83e3b48f270 100644 --- a/packages/angular/build/src/builders/application/index.ts +++ b/packages/angular/build/src/builders/application/index.ts @@ -14,7 +14,7 @@ import { BuildOutputFileType } from '../../tools/esbuild/bundler-context'; import { createJsonBuildManifest, emitFilesToDisk } from '../../tools/esbuild/utils'; import { colors as ansiColors } from '../../utils/color'; import { deleteOutputDir } from '../../utils/delete-output-dir'; -import { useJSONBuildLogs } from '../../utils/environment-options'; +import { bazelEsbuildPluginPath, useJSONBuildLogs } from '../../utils/environment-options'; import { purgeStaleBuildCache } from '../../utils/purge-cache'; import { assertCompatibleAngularVersion } from '../../utils/version'; import { runEsBuildBuildAction } from './build-action'; @@ -56,6 +56,14 @@ export async function* buildApplicationInternal( return; } + if (bazelEsbuildPluginPath) { + extensions ??= {}; + extensions.codePlugins ??= []; + + const { default: bazelEsbuildPlugin } = await import(bazelEsbuildPluginPath); + extensions.codePlugins.push(bazelEsbuildPlugin); + } + const normalizedOptions = await normalizeOptions(context, projectName, options, extensions); if (!normalizedOptions.outputOptions.ignoreServer) { diff --git a/packages/angular/build/src/utils/environment-options.ts b/packages/angular/build/src/utils/environment-options.ts index ea06fea2d09f..d830a5095959 100644 --- a/packages/angular/build/src/utils/environment-options.ts +++ b/packages/angular/build/src/utils/environment-options.ts @@ -112,3 +112,11 @@ export const useComponentTemplateHmr = const partialSsrBuildVariable = process.env['NG_BUILD_PARTIAL_SSR']; export const usePartialSsrBuild = isPresent(partialSsrBuildVariable) && isEnabled(partialSsrBuildVariable); + +const bazelBinDirectory = process.env['BAZEL_BINDIR']; +const bazelExecRoot = process.env['JS_BINARY__EXECROOT']; + +export const bazelEsbuildPluginPath = + bazelBinDirectory && bazelExecRoot + ? process.env['NG_INTERNAL_ESBUILD_PLUGINS_DO_NOT_USE'] + : undefined; From e6ccc74cb471440f7c5851d7453ecfea298a1103 Mon Sep 17 00:00:00 2001 From: MeAkib Date: Sat, 25 Oct 2025 16:57:05 +0600 Subject: [PATCH 209/228] refactor(@schematics/angular): add trailing comma to generated services Ensures code consistency by including trailing commas in generated service (cherry picked from commit 6dfee716f5c01cc5c887f0c3a18625bf6d7729fb) --- .../files/__name@dasherize__.__type@dasherize__.ts.template | 2 +- packages/schematics/angular/service/index_spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/schematics/angular/service/files/__name@dasherize__.__type@dasherize__.ts.template b/packages/schematics/angular/service/files/__name@dasherize__.__type@dasherize__.ts.template index 5c104786d178..056fdfea9385 100644 --- a/packages/schematics/angular/service/files/__name@dasherize__.__type@dasherize__.ts.template +++ b/packages/schematics/angular/service/files/__name@dasherize__.__type@dasherize__.ts.template @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class <%= classify(name) %><%= classify(type) %> { diff --git a/packages/schematics/angular/service/index_spec.ts b/packages/schematics/angular/service/index_spec.ts index b5a6856e1504..daa99df71145 100644 --- a/packages/schematics/angular/service/index_spec.ts +++ b/packages/schematics/angular/service/index_spec.ts @@ -55,7 +55,7 @@ describe('Service Schematic', () => { const tree = await schematicRunner.runSchematic('service', options, appTree); const content = tree.readContent('/projects/bar/src/app/foo/foo.ts'); - expect(content).toMatch(/providedIn: 'root'/); + expect(content).toMatch(/providedIn: 'root',/); }); it('should respect the skipTests flag', async () => { From 45e498f9576ff83eebe02deb235d36498ce06bde Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 28 Oct 2025 13:49:33 +0000 Subject: [PATCH 210/228] fix(@angular/build): handle redirects from guards during prerendering During prerendering, if a route returns a redirect, a static HTML page with a meta refresh tag is generated to redirect the user to the specified URL. This now includes support for redirects returned from route guards. Closes #31618 (cherry picked from commit cc16b1006522522d8ad2f4735d18ca625a12ec1d) --- .../src/utils/server-rendering/prerender.ts | 26 +------------------ .../utils/server-rendering/render-worker.ts | 9 ++++++- .../build/src/utils/server-rendering/utils.ts | 25 ++++++++++++++++++ .../server-routes-output-mode-static.ts | 13 ++++++++-- 4 files changed, 45 insertions(+), 28 deletions(-) diff --git a/packages/angular/build/src/utils/server-rendering/prerender.ts b/packages/angular/build/src/utils/server-rendering/prerender.ts index e087262a7f0c..5ece379ec9c0 100644 --- a/packages/angular/build/src/utils/server-rendering/prerender.ts +++ b/packages/angular/build/src/utils/server-rendering/prerender.ts @@ -26,6 +26,7 @@ import { WritableSerializableRouteTreeNode, } from './models'; import type { RenderWorkerData } from './render-worker'; +import { generateRedirectStaticPage } from './utils'; type PrerenderOptions = NormalizedApplicationBuildOptions['prerenderOptions']; type AppShellOptions = NormalizedApplicationBuildOptions['appShellOptions']; @@ -380,28 +381,3 @@ function addTrailingSlash(url: string): string { function removeLeadingSlash(value: string): string { return value[0] === '/' ? value.slice(1) : value; } - -/** - * Generates a static HTML page with a meta refresh tag to redirect the user to a specified URL. - * - * This function creates a simple HTML page that performs a redirect using a meta tag. - * It includes a fallback link in case the meta-refresh doesn't work. - * - * @param url - The URL to which the page should redirect. - * @returns The HTML content of the static redirect page. - */ -function generateRedirectStaticPage(url: string): string { - return ` - - - - - Redirecting - - - -
Redirecting to ${url}
- - -`.trim(); -} diff --git a/packages/angular/build/src/utils/server-rendering/render-worker.ts b/packages/angular/build/src/utils/server-rendering/render-worker.ts index 92fad35df32a..1d604d4743fc 100644 --- a/packages/angular/build/src/utils/server-rendering/render-worker.ts +++ b/packages/angular/build/src/utils/server-rendering/render-worker.ts @@ -12,6 +12,7 @@ import type { ESMInMemoryFileLoaderWorkerData } from './esm-in-memory-loader/loa import { patchFetchToLoadInMemoryAssets } from './fetch-patch'; import { DEFAULT_URL, launchServer } from './launch-server'; import { loadEsmModuleFromMemory } from './load-esm-from-memory'; +import { generateRedirectStaticPage } from './utils'; export interface RenderWorkerData extends ESMInMemoryFileLoaderWorkerData { assetFiles: Record; @@ -48,7 +49,13 @@ async function renderPage({ url }: RenderOptions): Promise { new Request(new URL(url, serverURL), { signal: AbortSignal.timeout(30_000) }), ); - return response ? response.text() : null; + if (!response) { + return null; + } + + const location = response.headers.get('Location'); + + return location ? generateRedirectStaticPage(location) : response.text(); } async function initialize() { diff --git a/packages/angular/build/src/utils/server-rendering/utils.ts b/packages/angular/build/src/utils/server-rendering/utils.ts index 83c90187178b..a3229bb9b796 100644 --- a/packages/angular/build/src/utils/server-rendering/utils.ts +++ b/packages/angular/build/src/utils/server-rendering/utils.ts @@ -19,3 +19,28 @@ export function isSsrRequestHandler( ): value is ReturnType { return typeof value === 'function' && '__ng_request_handler__' in value; } + +/** + * Generates a static HTML page with a meta refresh tag to redirect the user to a specified URL. + * + * This function creates a simple HTML page that performs a redirect using a meta tag. + * It includes a fallback link in case the meta-refresh doesn't work. + * + * @param url - The URL to which the page should redirect. + * @returns The HTML content of the static redirect page. + */ +export function generateRedirectStaticPage(url: string): string { + return ` + + + + + Redirecting + + + +
Redirecting to ${url}
+ + +`.trim(); +} diff --git a/tests/legacy-cli/e2e/tests/build/server-rendering/server-routes-output-mode-static.ts b/tests/legacy-cli/e2e/tests/build/server-rendering/server-routes-output-mode-static.ts index 617776a94dc7..77f954be4f4d 100644 --- a/tests/legacy-cli/e2e/tests/build/server-rendering/server-routes-output-mode-static.ts +++ b/tests/legacy-cli/e2e/tests/build/server-rendering/server-routes-output-mode-static.ts @@ -29,7 +29,8 @@ export default async function () { await writeFile( 'src/app/app.routes.ts', ` - import { Routes } from '@angular/router'; + import { inject } from '@angular/core'; + import { Routes, Router } from '@angular/router'; import { Home } from './home/home'; import { Ssg } from './ssg/ssg'; import { SsgWithParams } from './ssg-with-params/ssg-with-params'; @@ -47,6 +48,12 @@ export default async function () { path: 'ssg-redirect', redirectTo: 'ssg' }, + { + path: 'ssg-redirect-via-guard', + canActivate: [() => { + return inject(Router).createUrlTree(['ssg'], { queryParams: { foo: 'bar' }}) + }], + }, { path: 'ssg/:id', component: SsgWithParams, @@ -106,8 +113,10 @@ export default async function () { 'ssg/index.html': /ng-server-context="ssg".+ssg works!/, 'ssg/one/index.html': /ng-server-context="ssg".+ssg-with-params works!/, 'ssg/two/index.html': /ng-server-context="ssg".+ssg-with-params works!/, - // When static redirects as generated as meta tags. + // When static redirects are generated as meta tags. 'ssg-redirect/index.html': '', + 'ssg-redirect-via-guard/index.html': + '', }; for (const [filePath, fileMatch] of Object.entries(expects)) { From 542973ab074ccd9a5f09f73ee7f2706a21db45fc Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 29 Oct 2025 10:06:23 +0000 Subject: [PATCH 211/228] fix(@angular/build): add adapters to new reporter This commit add `adapters` field to the `ProgressNotifierReporter`. Closes #31629 --- .../angular/build/src/builders/karma/application_builder.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/angular/build/src/builders/karma/application_builder.ts b/packages/angular/build/src/builders/karma/application_builder.ts index b504146df2a4..365d5fec8ef0 100644 --- a/packages/angular/build/src/builders/karma/application_builder.ts +++ b/packages/angular/build/src/builders/karma/application_builder.ts @@ -215,6 +215,8 @@ function injectKarmaReporter( class ProgressNotifierReporter { static $inject = ['emitter', LATEST_BUILD_FILES_TOKEN]; + // Needed for the karma reporter interface, see https://github.com/angular/angular-cli/issues/31629 + adapters = []; constructor( private readonly emitter: KarmaEmitter, From f0885691d18b6575351774fcc50d746d981285f6 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 29 Oct 2025 17:06:56 +0000 Subject: [PATCH 212/228] fix(@angular/build): ensure locale data plugin runs before other plugins The Angular locale data plugin is responsible for resolving imports. In some cases, other plugins would attempt to resolve these imports first, leading to a 'Failed to resolve import' error. By ensuring that the Angular locale data plugin is prepended to the esbuild plugin list, we guarantee that it runs before other plugins, allowing it to correctly resolve the locale data imports. Closes #31579 (cherry picked from commit ccc598208cd2eccd18fa8c39564fcd3eea3547d7) --- .../angular/build/src/tools/esbuild/application-code-bundle.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..51d3702887f7 100644 --- a/packages/angular/build/src/tools/esbuild/application-code-bundle.ts +++ b/packages/angular/build/src/tools/esbuild/application-code-bundle.ts @@ -686,7 +686,7 @@ function getEsBuildCommonPolyfillsOptions( needLocaleDataPlugin = true; } if (needLocaleDataPlugin) { - buildOptions.plugins.push(createAngularLocaleDataPlugin()); + buildOptions.plugins.unshift(createAngularLocaleDataPlugin()); } if (polyfills.length === 0) { From 4ac89c5a609450f14c4d81cf344afe63a3c63432 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 29 Oct 2025 14:03:31 -0400 Subject: [PATCH 213/228] release: cut the v20.3.8 release --- CHANGELOG.md | 20 ++++++++++++++++++++ package.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3eb54015455..a7bbfbaab97f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ + + +# 20.3.8 (2025-10-29) + +### @angular-devkit/build-angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------------------------- | +| [813cba9b9](https://github.com/angular/angular-cli/commit/813cba9b9bfe60e874595ce25608ca85a890f6bf) | fix | expand jest and jest-environment-jsdom to allow version 30 | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------- | +| [542973ab0](https://github.com/angular/angular-cli/commit/542973ab074ccd9a5f09f73ee7f2706a21db45fc) | fix | add adapters to new reporter | +| [f0885691d](https://github.com/angular/angular-cli/commit/f0885691d18b6575351774fcc50d746d981285f6) | fix | ensure locale data plugin runs before other plugins | +| [45e498f95](https://github.com/angular/angular-cli/commit/45e498f9576ff83eebe02deb235d36498ce06bde) | fix | handle redirects from guards during prerendering | + + + # 20.3.7 (2025-10-22) diff --git a/package.json b/package.json index 300bf966eeba..c88f1c2927f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.7", + "version": "20.3.8", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 08e07e338edd799400e18cd62cd131b6d408f4cf Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 4 Nov 2025 09:48:11 +0000 Subject: [PATCH 214/228] fix(@angular/ssr): improve locale handling in app-engine Refactor app-engine to correctly handle single locale configurations and update manifest type definitions. Add new test cases for localized apps with a single locale. closes #31675 (cherry picked from commit 30efc56333f56a0feda418cee57eccbfbaf46936) --- packages/angular/ssr/src/app-engine.ts | 5 +- packages/angular/ssr/src/manifest.ts | 2 +- packages/angular/ssr/test/app-engine_spec.ts | 60 ++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/packages/angular/ssr/src/app-engine.ts b/packages/angular/ssr/src/app-engine.ts index 0ce5d23c30d1..dd204a4b595f 100644 --- a/packages/angular/ssr/src/app-engine.ts +++ b/packages/angular/ssr/src/app-engine.ts @@ -191,9 +191,10 @@ export class AngularAppEngine { * @returns A promise that resolves to the entry point exports or `undefined` if not found. */ private getEntryPointExportsForUrl(url: URL): Promise | undefined { - const { basePath } = this.manifest; + const { basePath, supportedLocales } = this.manifest; + if (this.supportedLocales.length === 1) { - return this.getEntryPointExports(''); + return this.getEntryPointExports(supportedLocales[this.supportedLocales[0]]); } const potentialLocale = getPotentialLocaleIdFromUrl(url, basePath); diff --git a/packages/angular/ssr/src/manifest.ts b/packages/angular/ssr/src/manifest.ts index 8fc415546033..0de603bba104 100644 --- a/packages/angular/ssr/src/manifest.ts +++ b/packages/angular/ssr/src/manifest.ts @@ -73,7 +73,7 @@ export interface AngularAppEngineManifest { * - `key`: The locale identifier (e.g., 'en', 'fr'). * - `value`: The url segment associated with that locale. */ - readonly supportedLocales: Readonly>; + readonly supportedLocales: Readonly>; } /** diff --git a/packages/angular/ssr/test/app-engine_spec.ts b/packages/angular/ssr/test/app-engine_spec.ts index c8ebbc4446ea..76b68f6d4a82 100644 --- a/packages/angular/ssr/test/app-engine_spec.ts +++ b/packages/angular/ssr/test/app-engine_spec.ts @@ -160,6 +160,66 @@ describe('AngularAppEngine', () => { }); }); + describe('Localized app with single locale', () => { + beforeAll(() => { + setAngularAppEngineManifest({ + entryPoints: { + it: createEntryPoint('it'), + }, + supportedLocales: { 'it': 'it' }, + basePath: '/', + }); + + appEngine = new AngularAppEngine(); + }); + + describe('handle', () => { + it('should return null for requests to unknown pages', async () => { + const request = new Request('https://example.com/unknown/page'); + const response = await appEngine.handle(request); + expect(response).toBeNull(); + }); + + it('should return a rendered page with correct locale', async () => { + const request = new Request('https://example.com/it/ssr'); + const response = await appEngine.handle(request); + expect(await response?.text()).toContain('SSR works IT'); + }); + + it('should correctly render the content when the URL ends with "index.html" with correct locale', async () => { + const request = new Request('https://example.com/it/ssr/index.html'); + const response = await appEngine.handle(request); + expect(await response?.text()).toContain('SSR works IT'); + expect(response?.headers?.get('Content-Language')).toBe('it'); + }); + + it('should return a serve prerendered page with correct locale', async () => { + const request = new Request('https://example.com/it/ssg'); + const response = await appEngine.handle(request); + expect(await response?.text()).toContain('SSG works IT'); + expect(response?.headers?.get('Content-Language')).toBe('it'); + }); + + it('should correctly serve the prerendered content when the URL ends with "index.html" with correct locale', async () => { + const request = new Request('https://example.com/it/ssg/index.html'); + const response = await appEngine.handle(request); + expect(await response?.text()).toContain('SSG works IT'); + }); + + it('should return null for requests to unknown pages in a locale', async () => { + const request = new Request('https://example.com/it/unknown/page'); + const response = await appEngine.handle(request); + expect(response).toBeNull(); + }); + + it('should return null for requests to file-like resources in a locale', async () => { + const request = new Request('https://example.com/it/logo.png'); + const response = await appEngine.handle(request); + expect(response).toBeNull(); + }); + }); + }); + describe('Non-localized app', () => { beforeAll(() => { @Component({ From 683697ebc5e129d2b17bded9e4ff318d598e0bd3 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 4 Nov 2025 09:56:08 +0000 Subject: [PATCH 215/228] fix(@angular/ssr): improve route matching for wildcard routes Enhance the route traversal logic to correctly identify and process wildcard route matchers (e.g., '**'). This ensures that routes with matchers are properly marked as present in the client router and handled according to their render mode. closes #31666 (cherry picked from commit 4eb22bc2e6bb90aa8d9d617e864e7976da3feb5a) --- packages/angular/ssr/src/routes/ng-routes.ts | 19 ++++++--- .../angular/ssr/test/routes/ng-routes_spec.ts | 39 +++++++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/packages/angular/ssr/src/routes/ng-routes.ts b/packages/angular/ssr/src/routes/ng-routes.ts index a7ca0d137d88..8a91e47c0420 100644 --- a/packages/angular/ssr/src/routes/ng-routes.ts +++ b/packages/angular/ssr/src/routes/ng-routes.ts @@ -256,15 +256,22 @@ async function* traverseRoutesConfig(options: { const currentRoutePath = joinUrlParts(parentRoute, path); if (matcher && serverConfigRouteTree) { - let foundMatch = false; + const matches: (RouteTreeNodeMetadata & ServerConfigRouteTreeAdditionalMetadata)[] = []; for (const matchedMetaData of serverConfigRouteTree.traverse()) { - if (!matchedMetaData.route.startsWith(currentRoutePath)) { - continue; + if (matchedMetaData.route.startsWith(currentRoutePath)) { + matches.push(matchedMetaData); } + } - foundMatch = true; - matchedMetaData.presentInClientRouter = true; + if (!matches.length) { + const matchedMetaData = serverConfigRouteTree.match(currentRoutePath); + if (matchedMetaData) { + matches.push(matchedMetaData); + } + } + for (const matchedMetaData of matches) { + matchedMetaData.presentInClientRouter = true; if (matchedMetaData.renderMode === RenderMode.Prerender) { yield { error: @@ -287,7 +294,7 @@ async function* traverseRoutesConfig(options: { }); } - if (!foundMatch) { + if (!matches.length) { yield { error: `The route '${stripLeadingSlash(currentRoutePath)}' has a defined matcher but does not ` + diff --git a/packages/angular/ssr/test/routes/ng-routes_spec.ts b/packages/angular/ssr/test/routes/ng-routes_spec.ts index d9fae4bcfb41..4c961aac821b 100644 --- a/packages/angular/ssr/test/routes/ng-routes_spec.ts +++ b/packages/angular/ssr/test/routes/ng-routes_spec.ts @@ -429,6 +429,45 @@ describe('extractRoutesAndCreateRouteTree', () => { ]); }); + it('should extract routes with a route level matcher captured by "**"', async () => { + setAngularAppTestingManifest( + [ + { + path: '', + component: DummyComponent, + }, + { + path: 'list', + component: DummyComponent, + }, + { + path: 'product', + component: DummyComponent, + children: [ + { + matcher: () => null, + component: DummyComponent, + }, + ], + }, + ], + [ + { path: 'list', renderMode: RenderMode.Client }, + { path: '', renderMode: RenderMode.Client }, + { path: '**', renderMode: RenderMode.Server }, + ], + ); + + const { routeTree, errors } = await extractRoutesAndCreateRouteTree({ url }); + expect(errors).toHaveSize(0); + expect(routeTree.toObject()).toEqual([ + { route: '/', renderMode: RenderMode.Client }, + { route: '/list', renderMode: RenderMode.Client }, + { route: '/product', renderMode: RenderMode.Server }, + { route: '/**', renderMode: RenderMode.Server }, + ]); + }); + it('should extract nested redirects that are not explicitly defined.', async () => { setAngularAppTestingManifest( [ From bddf211f26d26ccc69b2f1350c367cb55813ac53 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 4 Nov 2025 16:31:28 +0100 Subject: [PATCH 216/228] docs: clarify `outputMode` description in application schema Updates the description for the property in the application builder's schema. This change clarifies that both 'static' and 'server' modes generate build artifacts, and specifies that the 'server' mode is required for applications using hybrid rendering or APIs. (cherry picked from commit 1c4af8d3d8806b8374d5035736de41faa5b1a955) --- packages/angular/build/src/builders/application/schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/application/schema.json b/packages/angular/build/src/builders/application/schema.json index c0a0f98313aa..8db4e6145b3f 100644 --- a/packages/angular/build/src/builders/application/schema.json +++ b/packages/angular/build/src/builders/application/schema.json @@ -611,7 +611,7 @@ }, "outputMode": { "type": "string", - "description": "Defines the build output target. 'static': Generates a static site for deployment on any static hosting service. 'server': Produces an application designed for deployment on a server that supports server-side rendering (SSR).", + "description": "Defines the type of build output artifact. 'static': Generates a static site build artifact for deployment on any static hosting service. 'server': Generates a server application build artifact, required for applications using hybrid rendering or APIs.", "enum": ["static", "server"] } }, From 2c0cafa9c51ff82674cffedbd09a273cff34a835 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 5 Nov 2025 14:40:46 +0000 Subject: [PATCH 217/228] release: cut the v20.3.9 release --- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7bbfbaab97f..4c7ac77303ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ + + +# 20.3.9 (2025-11-05) + +### @angular/ssr + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------ | +| [08e07e338](https://github.com/angular/angular-cli/commit/08e07e338edd799400e18cd62cd131b6d408f4cf) | fix | improve locale handling in app-engine | +| [683697ebc](https://github.com/angular/angular-cli/commit/683697ebc5e129d2b17bded9e4ff318d598e0bd3) | fix | improve route matching for wildcard routes | + + + # 20.3.8 (2025-10-29) diff --git a/package.json b/package.json index c88f1c2927f7..0d7040ce3ab3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.8", + "version": "20.3.9", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 7c11e0790a307813d70421caca8158e4cbedefc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=AA=20Nam=20Kh=C3=A1nh?= <55955273+khanhkhanhlele@users.noreply.github.com> Date: Fri, 7 Nov 2025 17:51:43 +0700 Subject: [PATCH 218/228] refactor: fix several typos (#31716) This commit fixes a number of typos in tests. (cherry picked from commit a8465d41d35f01349bed7b7c02be03c5dfbf1b34) --- .../application/tests/behavior/component-stylesheets_spec.ts | 2 +- .../application/tests/options/external-dependencies_spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/angular/build/src/builders/application/tests/behavior/component-stylesheets_spec.ts b/packages/angular/build/src/builders/application/tests/behavior/component-stylesheets_spec.ts index ecc460bcb405..ddae750a64a4 100644 --- a/packages/angular/build/src/builders/application/tests/behavior/component-stylesheets_spec.ts +++ b/packages/angular/build/src/builders/application/tests/behavior/component-stylesheets_spec.ts @@ -11,7 +11,7 @@ import { APPLICATION_BUILDER_INFO, BASE_OPTIONS, describeBuilder } from '../setu describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => { describe('Behavior: "Component Stylesheets"', () => { - it('should successfuly compile with an empty inline style', async () => { + it('should successfully compile with an empty inline style', async () => { await harness.modifyFile('src/app/app.component.ts', (content) => { return content.replace('styleUrls', 'styles').replace('./app.component.css', ''); }); diff --git a/packages/angular/build/src/builders/application/tests/options/external-dependencies_spec.ts b/packages/angular/build/src/builders/application/tests/options/external-dependencies_spec.ts index feb9b6447c3b..deb55e172109 100644 --- a/packages/angular/build/src/builders/application/tests/options/external-dependencies_spec.ts +++ b/packages/angular/build/src/builders/application/tests/options/external-dependencies_spec.ts @@ -24,7 +24,7 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => { .content.not.toMatch(/from ['"]@angular\/common['"]/); }); - it('should only externalize the listed depedencies when option is set', async () => { + it('should only externalize the listed dependencies when option is set', async () => { harness.useTarget('build', { ...BASE_OPTIONS, externalDependencies: ['@angular/core'], @@ -39,7 +39,7 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => { .content.not.toMatch(/from ['"]@angular\/common['"]/); }); - it('should externalize the listed depedencies in Web Workers when option is set', async () => { + it('should externalize the listed dependencies in Web Workers when option is set', async () => { harness.useTarget('build', { ...BASE_OPTIONS, externalDependencies: ['path'], From 6fbd106e5d2c7d0ed71443a9ba1a34828b5b79fd Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 7 Nov 2025 17:46:05 +0000 Subject: [PATCH 219/228] build: migrate license file handling to `write_source_file` Migrate the handling of THIRD_PARTY_LICENSES.txt.golden in the SSR npm package from using `bazel_skylib`'s `diff_test` and `write_file` rules to `aspect_bazel_lib`'s `write_source_file` rule. This simplifies the Bazel configuration for managing the golden license file. (cherry picked from commit eca8236ef9188e9437f2b236ecc729db620c9b30) --- .../angular/ssr/test/npm_package/BUILD.bazel | 29 ++++--------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/packages/angular/ssr/test/npm_package/BUILD.bazel b/packages/angular/ssr/test/npm_package/BUILD.bazel index d79cbf7d0105..ae1694d8caac 100644 --- a/packages/angular/ssr/test/npm_package/BUILD.bazel +++ b/packages/angular/ssr/test/npm_package/BUILD.bazel @@ -1,5 +1,4 @@ -load("@bazel_skylib//rules:diff_test.bzl", "diff_test") -load("@bazel_skylib//rules:write_file.bzl", "write_file") +load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_file") load("//tools:defaults.bzl", "jasmine_test", "ts_project") ts_project( @@ -32,26 +31,8 @@ genrule( """, ) -diff_test( - name = "beasties_license_test", - failure_message = """ - - To accept the new golden file, execute: - pnpm bazel run //packages/angular/ssr/test/npm_package:beasties_license_test.accept - """, - file1 = ":THIRD_PARTY_LICENSES.txt.golden", - file2 = ":beasties_license_file", -) - -write_file( - name = "beasties_license_test.accept", - out = "beasties_license_file_accept.sh", - content = - [ - "#!/usr/bin/env bash", - "cd ${BUILD_WORKSPACE_DIRECTORY}", - "pnpm bazel build //packages/angular/ssr:npm_package", - "cp -fv dist/bin/packages/angular/ssr/npm_package/third_party/beasties/THIRD_PARTY_LICENSES.txt packages/angular/ssr/test/npm_package/THIRD_PARTY_LICENSES.txt.golden", - ], - is_executable = True, +write_source_file( + name = "beasties_license", + in_file = ":beasties_license_file", + out_file = ":THIRD_PARTY_LICENSES.txt.golden", ) From b3908f68ed2f05cee56cbf0d9895dcfc3dc0ac25 Mon Sep 17 00:00:00 2001 From: Claudio Roma <36543510+roma-claudio@users.noreply.github.com> Date: Sat, 8 Nov 2025 01:07:52 +0700 Subject: [PATCH 220/228] fix(@angular/build): do not remove `@angular/localize` when having external packages (#31721) The current bundle logic removes the `@angular/localize` polyfill if i18n inline is active. However, i18n inlining is not applied on external packages (e.g. during `ng serve` for prebundled dependencies) This causes an issue at runtime execution of the packages which are external and depend on localization. With this change the `@angular/localize` polyfill is retained when external packages is truthy. (cherry picked from commit 38c22001330eaf2b37b8a0a04fdda50666458664) --- .../build/src/tools/esbuild/application-code-bundle.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 51d3702887f7..635faca8c82e 100644 --- a/packages/angular/build/src/tools/esbuild/application-code-bundle.ts +++ b/packages/angular/build/src/tools/esbuild/application-code-bundle.ts @@ -654,7 +654,7 @@ function getEsBuildCommonPolyfillsOptions( tryToResolvePolyfillsAsRelative: boolean, loadResultCache: LoadResultCache | undefined, ): BuildOptions | undefined { - const { jit, workspaceRoot, i18nOptions } = options; + const { jit, workspaceRoot, i18nOptions, externalPackages } = options; const buildOptions = getEsBuildCommonOptions(options); buildOptions.splitting = false; @@ -671,8 +671,10 @@ function getEsBuildCommonPolyfillsOptions( // Locale data should go first so that project provided polyfill code can augment if needed. let needLocaleDataPlugin = false; if (i18nOptions.shouldInline) { - // Remove localize polyfill as this is not needed for build time i18n. - polyfills = polyfills.filter((path) => !path.startsWith('@angular/localize')); + if (!externalPackages) { + // Remove localize polyfill when i18n inline transformation have been applied to all the packages. + polyfills = polyfills.filter((path) => !path.startsWith('@angular/localize')); + } // Add locale data for all active locales // TODO: Inject each individually within the inlining process itself From c854a719bb3a8d92fe42c8fba4b0b1789081b21c Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Mon, 10 Nov 2025 08:23:39 +0100 Subject: [PATCH 221/228] fix(@schematics/angular): correct `tsconfig.spec.json` include for spec files Updates the files in both application and library schematics to specifically include instead of . This ensures that only test specification files are processed for testing, preventing unintended inclusion of other TypeScript files. (cherry picked from commit 5b0afb324d6fa0acfc4f53394f728f9ffb65dc63) --- .../application/files/common-files/tsconfig.spec.json.template | 3 ++- .../angular/library/files/tsconfig.spec.json.template | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/schematics/angular/application/files/common-files/tsconfig.spec.json.template b/packages/schematics/angular/application/files/common-files/tsconfig.spec.json.template index 11ab3b8614ff..6827bd77030c 100644 --- a/packages/schematics/angular/application/files/common-files/tsconfig.spec.json.template +++ b/packages/schematics/angular/application/files/common-files/tsconfig.spec.json.template @@ -9,6 +9,7 @@ ] }, "include": [ - "src/**/*.ts" + "src/**/*.d.ts", + "src/**/*<% if (standalone) { %>.spec<% } %>.ts" ] } diff --git a/packages/schematics/angular/library/files/tsconfig.spec.json.template b/packages/schematics/angular/library/files/tsconfig.spec.json.template index 11ab3b8614ff..6827bd77030c 100644 --- a/packages/schematics/angular/library/files/tsconfig.spec.json.template +++ b/packages/schematics/angular/library/files/tsconfig.spec.json.template @@ -9,6 +9,7 @@ ] }, "include": [ - "src/**/*.ts" + "src/**/*.d.ts", + "src/**/*<% if (standalone) { %>.spec<% } %>.ts" ] } From 904ef7a65ff80ee6b1921b96d11836b51d57c039 Mon Sep 17 00:00:00 2001 From: Jan Martin Date: Wed, 12 Nov 2025 09:56:45 -0800 Subject: [PATCH 222/228] release: cut the v20.3.10 release --- CHANGELOG.md | 18 ++++++++++++++++++ package.json | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c7ac77303ac..2a2f81d06ccf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ + + +# 20.3.10 (2025-11-12) + +### @schematics/angular + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------- | +| [c854a719b](https://github.com/angular/angular-cli/commit/c854a719bb3a8d92fe42c8fba4b0b1789081b21c) | fix | correct `tsconfig.spec.json` include for spec files | + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------- | +| [b3908f68e](https://github.com/angular/angular-cli/commit/b3908f68ed2f05cee56cbf0d9895dcfc3dc0ac25) | fix | do not remove `@angular/localize` when having external packages ([#31721](https://github.com/angular/angular-cli/pull/31721)) | + + + # 20.3.9 (2025-11-05) diff --git a/package.json b/package.json index 0d7040ce3ab3..51da7187e9fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.9", + "version": "20.3.10", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 8053f2d92a68a8bd01854eb81aa472249f5a83b2 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 13 Nov 2025 19:19:21 +0000 Subject: [PATCH 223/228] =?UTF-8?q?fix(@angular/build):=20ensure=20`=C9=B5?= =?UTF-8?q?getOrCreateAngularServerApp`=20is=20always=20defined=20after=20?= =?UTF-8?q?errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses an issue where could become `ɵgetOrCreateAngularServerApp` undefined after an error, leading to subsequent rendering failures. This change modifies the HMR process to include a timestamp when loading. This ensures the server application is always re-evaluated, preventing stale application states. Closes #31671 --- .../angular/build/src/builders/dev-server/vite-server.ts | 9 ++++++--- .../build/src/tools/vite/middlewares/ssr-middleware.ts | 6 ------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/angular/build/src/builders/dev-server/vite-server.ts b/packages/angular/build/src/builders/dev-server/vite-server.ts index 8000af9990ac..7f8665dd8061 100644 --- a/packages/angular/build/src/builders/dev-server/vite-server.ts +++ b/packages/angular/build/src/builders/dev-server/vite-server.ts @@ -598,9 +598,12 @@ async function invalidateUpdatedFiles( } if (serverApplicationChanged) { - // Clear the server app cache and - // trigger module evaluation before reload to initiate dependency optimization. - const { ɵdestroyAngularServerApp } = (await server.ssrLoadModule('/main.server.mjs')) as { + // Clear the server app cache and trigger module evaluation before reload to initiate dependency optimization. + // The querystring is needed as a workaround for: + // `ɵgetOrCreateAngularServerApp` can be undefined right after an error. + const { ɵdestroyAngularServerApp } = (await server.ssrLoadModule( + `/main.server.mjs?timestamp=${Date.now()}`, + )) as { ɵdestroyAngularServerApp: typeof destroyAngularServerApp; }; diff --git a/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts b/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts index 387a94a2ba53..91fafc2deb17 100644 --- a/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts +++ b/packages/angular/build/src/tools/vite/middlewares/ssr-middleware.ts @@ -44,12 +44,6 @@ export function createAngularSsrInternalMiddleware( ɵgetOrCreateAngularServerApp: typeof getOrCreateAngularServerApp; }; - // `ɵgetOrCreateAngularServerApp` can be undefined right after an error. - // See: https://github.com/angular/angular-cli/issues/29907 - if (!ɵgetOrCreateAngularServerApp) { - return next(); - } - const angularServerApp = ɵgetOrCreateAngularServerApp({ allowStaticRouteRender: true, }); From 4dfc31451eaa92b90421d7cfc41620f330c7d2e6 Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 19 Nov 2025 08:08:02 -0800 Subject: [PATCH 224/228] release: cut the v20.3.11 release --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a2f81d06ccf..4be84a714b12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ + + +# 20.3.11 (2025-11-19) + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------------- | +| [8053f2d92](https://github.com/angular/angular-cli/commit/8053f2d92a68a8bd01854eb81aa472249f5a83b2) | fix | ensure `ɵgetOrCreateAngularServerApp` is always defined after errors | + + + # 20.3.10 (2025-11-12) diff --git a/package.json b/package.json index 51da7187e9fa..8c277a5e0c02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.10", + "version": "20.3.11", "private": true, "description": "Software Development Kit for Angular", "keywords": [ From 1abe68ad87f9b892734117a087b5775068bd232b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 20 Nov 2025 16:55:05 +0000 Subject: [PATCH 225/228] fix(@angular/ssr): prevent redirect loop with encoded query parameters Previously, encoded query parameters caused a mismatch between the requested URL and the reconstructed URL, leading to a redirect loop. This change ensures both URLs are decoded before comparison. Closes #31881 (cherry picked from commit 61a027dba7f3a569c1ac936c34956b8f96fd102a) --- packages/angular/ssr/src/utils/ng.ts | 30 +++++++++++++++++--- packages/angular/ssr/src/utils/url.ts | 15 ++++++++++ packages/angular/ssr/test/app-engine_spec.ts | 14 +++++++++ 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index 44f17781be56..f0e200323436 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -107,13 +107,15 @@ export async function renderAngular( if (!routerIsProvided) { hasNavigationError = false; - } else if (lastSuccessfulNavigation) { + } else if (lastSuccessfulNavigation?.finalUrl) { hasNavigationError = false; + const { pathname, search, hash } = envInjector.get(PlatformLocation); - const finalUrl = [stripTrailingSlash(pathname), search, hash].join(''); + const finalUrl = constructDecodedUrl({ pathname, search, hash }); + const urlToRenderString = constructDecodedUrl(urlToRender); - if (urlToRender.href !== new URL(finalUrl, urlToRender.origin).href) { - redirectTo = finalUrl; + if (urlToRenderString !== finalUrl) { + redirectTo = [pathname, search, hash].join(''); } } @@ -171,3 +173,23 @@ function asyncDestroyPlatform(platformRef: PlatformRef): Promise { }, 0); }); } + +/** + * Constructs a decoded URL string from its components, ensuring consistency for comparison. + * + * This function takes a URL-like object (containing `pathname`, `search`, and `hash`), + * strips the trailing slash from the pathname, joins the components, and then decodes + * the entire string. This normalization is crucial for accurately comparing URLs + * that might differ only in encoding or trailing slashes. + * + * @param url - An object containing the URL components: + * - `pathname`: The path of the URL. + * - `search`: The query string of the URL (including '?'). + * - `hash`: The hash fragment of the URL (including '#'). + * @returns The constructed and decoded URL string. + */ +function constructDecodedUrl(url: { pathname: string; search: string; hash: string }): string { + const joinedUrl = [stripTrailingSlash(url.pathname), url.search, url.hash].join(''); + + return decodeURIComponent(joinedUrl); +} diff --git a/packages/angular/ssr/src/utils/url.ts b/packages/angular/ssr/src/utils/url.ts index 9b5edede7f8e..faabf15b1bd4 100644 --- a/packages/angular/ssr/src/utils/url.ts +++ b/packages/angular/ssr/src/utils/url.ts @@ -220,3 +220,18 @@ export function stripMatrixParams(pathname: string): string { // This regex finds all occurrences of a semicolon followed by any characters return pathname.includes(';') ? pathname.replace(MATRIX_PARAMS_REGEX, '') : pathname; } + +/** + * Constructs a decoded URL string from its components. + * + * This function joins the pathname (with trailing slash removed), search, and hash, + * and then decodes the result. + * + * @param pathname - The path of the URL. + * @param search - The query string of the URL (including '?'). + * @param hash - The hash fragment of the URL (including '#'). + * @returns The constructed and decoded URL string. + */ +export function constructUrl(pathname: string, search: string, hash: string): string { + return decodeURIComponent([stripTrailingSlash(pathname), search, hash].join('')); +} diff --git a/packages/angular/ssr/test/app-engine_spec.ts b/packages/angular/ssr/test/app-engine_spec.ts index 76b68f6d4a82..0b970f7a309e 100644 --- a/packages/angular/ssr/test/app-engine_spec.ts +++ b/packages/angular/ssr/test/app-engine_spec.ts @@ -273,5 +273,19 @@ describe('AngularAppEngine', () => { const response = await appEngine.handle(request); expect(await response?.text()).toContain('Home works'); }); + + it('should work with encoded characters', async () => { + const request = new Request('https://example.com/home?email=xyz%40xyz.com'); + const response = await appEngine.handle(request); + expect(response?.status).toBe(200); + expect(await response?.text()).toContain('Home works'); + }); + + it('should work with decoded characters', async () => { + const request = new Request('https://example.com/home?email=xyz@xyz.com'); + const response = await appEngine.handle(request); + expect(response?.status).toBe(200); + expect(await response?.text()).toContain('Home works'); + }); }); }); From 25bb7e65c4fc7e401c658126c53b0b7a13d62965 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:14:39 +0000 Subject: [PATCH 226/228] fix(@angular/build): ensure correct URL joining for prerender routes This commit addresses an issue where prerendering with i18n and a `routesFile` could lead to infinite redirect loops or failure to prerender `index.html`. The previous `urlJoin` utility was replaced with more robust URL manipulation functions (`joinUrlParts`, `addTrailingSlash`, `stripLeadingSlash`) to ensure that paths are correctly constructed, especially when dealing with base hrefs and locale subpaths. This ensures that routes from the `routesFile` are correctly joined with the base href, preventing malformed URLs that cause the redirection issues. Closes #31877 (cherry picked from commit 0fe572ed7121953300bec373ac2261c8da6f89a4) --- .../build/src/builders/application/options.ts | 6 +- .../src/utils/server-rendering/prerender.ts | 20 +-- packages/angular/build/src/utils/url.ts | 118 +++++++++++++++++- 3 files changed, 120 insertions(+), 24 deletions(-) diff --git a/packages/angular/build/src/builders/application/options.ts b/packages/angular/build/src/builders/application/options.ts index 1b3a15b8cd56..25bd87253357 100644 --- a/packages/angular/build/src/builders/application/options.ts +++ b/packages/angular/build/src/builders/application/options.ts @@ -25,7 +25,7 @@ import { loadPostcssConfiguration, } from '../../utils/postcss-configuration'; import { getProjectRootPaths, normalizeDirectoryPath } from '../../utils/project-metadata'; -import { urlJoin } from '../../utils/url'; +import { addTrailingSlash, joinUrlParts } from '../../utils/url'; import { Schema as ApplicationBuilderOptions, ExperimentalPlatform, @@ -681,7 +681,9 @@ export function getLocaleBaseHref( const baseHrefSuffix = localeData.baseHref ?? localeData.subPath + '/'; - return baseHrefSuffix !== '' ? urlJoin(baseHref, baseHrefSuffix) : undefined; + return baseHrefSuffix !== '' + ? addTrailingSlash(joinUrlParts(baseHref, baseHrefSuffix)) + : undefined; } /** diff --git a/packages/angular/build/src/utils/server-rendering/prerender.ts b/packages/angular/build/src/utils/server-rendering/prerender.ts index 5ece379ec9c0..f33f851f10c4 100644 --- a/packages/angular/build/src/utils/server-rendering/prerender.ts +++ b/packages/angular/build/src/utils/server-rendering/prerender.ts @@ -14,7 +14,7 @@ import { BuildOutputFile, BuildOutputFileType } from '../../tools/esbuild/bundle import { BuildOutputAsset } from '../../tools/esbuild/bundler-execution-result'; import { assertIsError } from '../error'; import { toPosixPath } from '../path'; -import { urlJoin } from '../url'; +import { addLeadingSlash, addTrailingSlash, joinUrlParts, stripLeadingSlash } from '../url'; import { WorkerPool } from '../worker-pool'; import { IMPORT_EXEC_ARGV } from './esm-in-memory-loader/utils'; import { SERVER_APP_MANIFEST_FILENAME } from './manifest'; @@ -240,7 +240,7 @@ async function renderPages( ? addLeadingSlash(route.slice(baseHrefPathnameWithLeadingSlash.length)) : route; - const outPath = posix.join(removeLeadingSlash(routeWithoutBaseHref), 'index.html'); + const outPath = stripLeadingSlash(posix.join(routeWithoutBaseHref, 'index.html')); if (typeof redirectTo === 'string') { output[outPath] = { content: generateRedirectStaticPage(redirectTo), appShellRoute: false }; @@ -298,7 +298,7 @@ async function getAllRoutes( let appShellRoute: string | undefined; if (appShellOptions) { - appShellRoute = urlJoin(baseHref, appShellOptions.route); + appShellRoute = joinUrlParts(baseHref, appShellOptions.route); routes.push({ renderMode: RouteRenderMode.Prerender, @@ -311,7 +311,7 @@ async function getAllRoutes( for (const route of routesFromFile) { routes.push({ renderMode: RouteRenderMode.Prerender, - route: urlJoin(baseHref, route.trim()), + route: joinUrlParts(baseHref, route.trim()), }); } } @@ -369,15 +369,3 @@ async function getAllRoutes( void renderWorker.destroy(); } } - -function addLeadingSlash(value: string): string { - return value[0] === '/' ? value : '/' + value; -} - -function addTrailingSlash(url: string): string { - return url[url.length - 1] === '/' ? url : `${url}/`; -} - -function removeLeadingSlash(value: string): string { - return value[0] === '/' ? value.slice(1) : value; -} diff --git a/packages/angular/build/src/utils/url.ts b/packages/angular/build/src/utils/url.ts index d3f1e5791276..9edbfb3a3de5 100644 --- a/packages/angular/build/src/utils/url.ts +++ b/packages/angular/build/src/utils/url.ts @@ -6,11 +6,117 @@ * found in the LICENSE file at https://angular.dev/license */ -export function urlJoin(...parts: string[]): string { - const [p, ...rest] = parts; +/** + * Removes the trailing slash from a URL if it exists. + * + * @param url - The URL string from which to remove the trailing slash. + * @returns The URL string without a trailing slash. + * + * @example + * ```js + * stripTrailingSlash('path/'); // 'path' + * stripTrailingSlash('/path'); // '/path' + * stripTrailingSlash('/'); // '/' + * stripTrailingSlash(''); // '' + * ``` + */ +export function stripTrailingSlash(url: string): string { + // Check if the last character of the URL is a slash + return url.length > 1 && url[url.length - 1] === '/' ? url.slice(0, -1) : url; +} + +/** + * Removes the leading slash from a URL if it exists. + * + * @param url - The URL string from which to remove the leading slash. + * @returns The URL string without a leading slash. + * + * @example + * ```js + * stripLeadingSlash('/path'); // 'path' + * stripLeadingSlash('/path/'); // 'path/' + * stripLeadingSlash('/'); // '/' + * stripLeadingSlash(''); // '' + * ``` + */ +export function stripLeadingSlash(url: string): string { + // Check if the first character of the URL is a slash + return url.length > 1 && url[0] === '/' ? url.slice(1) : url; +} + +/** + * Adds a leading slash to a URL if it does not already have one. + * + * @param url - The URL string to which the leading slash will be added. + * @returns The URL string with a leading slash. + * + * @example + * ```js + * addLeadingSlash('path'); // '/path' + * addLeadingSlash('/path'); // '/path' + * ``` + */ +export function addLeadingSlash(url: string): string { + // Check if the URL already starts with a slash + return url[0] === '/' ? url : `/${url}`; +} + +/** + * Adds a trailing slash to a URL if it does not already have one. + * + * @param url - The URL string to which the trailing slash will be added. + * @returns The URL string with a trailing slash. + * + * @example + * ```js + * addTrailingSlash('path'); // 'path/' + * addTrailingSlash('path/'); // 'path/' + * ``` + */ +export function addTrailingSlash(url: string): string { + // Check if the URL already end with a slash + return url[url.length - 1] === '/' ? url : `${url}/`; +} + +/** + * Joins URL parts into a single URL string. + * + * This function takes multiple URL segments, normalizes them by removing leading + * and trailing slashes where appropriate, and then joins them into a single URL. + * + * @param parts - The parts of the URL to join. Each part can be a string with or without slashes. + * @returns The joined URL string, with normalized slashes. + * + * @example + * ```js + * joinUrlParts('path/', '/to/resource'); // '/path/to/resource' + * joinUrlParts('/path/', 'to/resource'); // '/path/to/resource' + * joinUrlParts('http://localhost/path/', 'to/resource'); // 'http://localhost/path/to/resource' + * joinUrlParts('', ''); // '/' + * ``` + */ +export function joinUrlParts(...parts: string[]): string { + const normalizeParts: string[] = []; + for (const part of parts) { + if (part === '') { + // Skip any empty parts + continue; + } + + let normalizedPart = part; + if (part[0] === '/') { + normalizedPart = normalizedPart.slice(1); + } + if (part[part.length - 1] === '/') { + normalizedPart = normalizedPart.slice(0, -1); + } + if (normalizedPart !== '') { + normalizeParts.push(normalizedPart); + } + } + + const protocolMatch = normalizeParts.length && /^https?:\/\//.test(normalizeParts[0]); + const joinedParts = normalizeParts.join('/'); - // Remove trailing slash from first part - // Join all parts with `/` - // Dedupe double slashes from path names - return p.replace(/\/$/, '') + ('/' + rest.join('/')).replace(/\/\/+/g, '/'); + return protocolMatch ? joinedParts : addLeadingSlash(joinedParts); } From cceb862969e541a5f54b689a6439e32773eafe65 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Fri, 21 Nov 2025 09:40:33 +0000 Subject: [PATCH 227/228] fix(@angular/ssr): handle `X-Forwarded-Prefix` and `APP_BASE_HREF` in redirects This commit ensures that redirects correctly account for the X-Forwarded-Prefix header and APP_BASE_HREF, preventing incorrect redirect loops or invalid URLs when running behind a proxy or with a base href. Closes #31902 (cherry picked from commit 4dac5f25106162d9cbf20ec2bf4fe02c47409c41) --- packages/angular/ssr/src/app.ts | 9 +++- packages/angular/ssr/src/utils/ng.ts | 32 +++++++++--- packages/angular/ssr/test/app-engine_spec.ts | 14 ----- packages/angular/ssr/test/app_spec.ts | 55 +++++++++++++++++++- 4 files changed, 87 insertions(+), 23 deletions(-) diff --git a/packages/angular/ssr/src/app.ts b/packages/angular/ssr/src/app.ts index 4895866d715b..ee14f8a26105 100644 --- a/packages/angular/ssr/src/app.ts +++ b/packages/angular/ssr/src/app.ts @@ -175,8 +175,15 @@ export class AngularServerApp { } const { redirectTo, status, renderMode } = matchedRoute; + if (redirectTo !== undefined) { - return createRedirectResponse(buildPathWithParams(redirectTo, url.pathname), status); + return createRedirectResponse( + joinUrlParts( + request.headers.get('X-Forwarded-Prefix') ?? '', + buildPathWithParams(redirectTo, url.pathname), + ), + status, + ); } if (renderMode === RenderMode.Prerender) { diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts index f0e200323436..a35beeff835b 100644 --- a/packages/angular/ssr/src/utils/ng.ts +++ b/packages/angular/ssr/src/utils/ng.ts @@ -6,10 +6,11 @@ * found in the LICENSE file at https://angular.dev/license */ -import { PlatformLocation } from '@angular/common'; +import { APP_BASE_HREF, PlatformLocation } from '@angular/common'; import { ApplicationRef, type PlatformRef, + REQUEST, type StaticProvider, type Type, ɵConsole, @@ -23,7 +24,7 @@ import { } from '@angular/platform-server'; import { ActivatedRoute, Router } from '@angular/router'; import { Console } from '../console'; -import { stripIndexHtmlFromURL, stripTrailingSlash } from './url'; +import { addTrailingSlash, joinUrlParts, stripIndexHtmlFromURL, stripTrailingSlash } from './url'; /** * Represents the bootstrap mechanism for an Angular application. @@ -110,9 +111,13 @@ export async function renderAngular( } else if (lastSuccessfulNavigation?.finalUrl) { hasNavigationError = false; + const requestPrefix = + envInjector.get(APP_BASE_HREF, null, { optional: true }) ?? + envInjector.get(REQUEST, null, { optional: true })?.headers.get('X-Forwarded-Prefix'); + const { pathname, search, hash } = envInjector.get(PlatformLocation); - const finalUrl = constructDecodedUrl({ pathname, search, hash }); - const urlToRenderString = constructDecodedUrl(urlToRender); + const finalUrl = constructDecodedUrl({ pathname, search, hash }, requestPrefix); + const urlToRenderString = constructDecodedUrl(urlToRender, requestPrefix); if (urlToRenderString !== finalUrl) { redirectTo = [pathname, search, hash].join(''); @@ -186,10 +191,23 @@ function asyncDestroyPlatform(platformRef: PlatformRef): Promise { * - `pathname`: The path of the URL. * - `search`: The query string of the URL (including '?'). * - `hash`: The hash fragment of the URL (including '#'). + * @param prefix - An optional prefix (e.g., `APP_BASE_HREF`) to prepend to the pathname + * if it is not already present. * @returns The constructed and decoded URL string. */ -function constructDecodedUrl(url: { pathname: string; search: string; hash: string }): string { - const joinedUrl = [stripTrailingSlash(url.pathname), url.search, url.hash].join(''); +function constructDecodedUrl( + url: { pathname: string; search: string; hash: string }, + prefix?: string | null, +): string { + const { pathname, hash, search } = url; + const urlParts: string[] = []; + if (prefix && !addTrailingSlash(pathname).startsWith(addTrailingSlash(prefix))) { + urlParts.push(joinUrlParts(prefix, pathname)); + } else { + urlParts.push(stripTrailingSlash(pathname)); + } + + urlParts.push(search, hash); - return decodeURIComponent(joinedUrl); + return decodeURIComponent(urlParts.join('')); } diff --git a/packages/angular/ssr/test/app-engine_spec.ts b/packages/angular/ssr/test/app-engine_spec.ts index 0b970f7a309e..76b68f6d4a82 100644 --- a/packages/angular/ssr/test/app-engine_spec.ts +++ b/packages/angular/ssr/test/app-engine_spec.ts @@ -273,19 +273,5 @@ describe('AngularAppEngine', () => { const response = await appEngine.handle(request); expect(await response?.text()).toContain('Home works'); }); - - it('should work with encoded characters', async () => { - const request = new Request('https://example.com/home?email=xyz%40xyz.com'); - const response = await appEngine.handle(request); - expect(response?.status).toBe(200); - expect(await response?.text()).toContain('Home works'); - }); - - it('should work with decoded characters', async () => { - const request = new Request('https://example.com/home?email=xyz@xyz.com'); - const response = await appEngine.handle(request); - expect(response?.status).toBe(200); - expect(await response?.text()).toContain('Home works'); - }); }); }); diff --git a/packages/angular/ssr/test/app_spec.ts b/packages/angular/ssr/test/app_spec.ts index b3ea250cae41..edf51e5e65fa 100644 --- a/packages/angular/ssr/test/app_spec.ts +++ b/packages/angular/ssr/test/app_spec.ts @@ -11,7 +11,8 @@ import '@angular/compiler'; /* eslint-enable import/no-unassigned-import */ -import { Component, inject } from '@angular/core'; +import { APP_BASE_HREF } from '@angular/common'; +import { Component, REQUEST, inject } from '@angular/core'; import { CanActivateFn, Router } from '@angular/router'; import { AngularServerApp } from '../src/app'; import { RenderMode } from '../src/routes/route-config'; @@ -125,6 +126,14 @@ describe('AngularServerApp', () => { hash: 'f799132d0a09e0fef93c68a12e443527700eb59e6f67fcb7854c3a60ff082fde', }, }, + undefined, + undefined, + [ + { + provide: APP_BASE_HREF, + useFactory: () => inject(REQUEST)?.headers.get('X-Forwarded-Prefix'), + }, + ], ); app = new AngularServerApp(); @@ -310,6 +319,50 @@ describe('AngularServerApp', () => { expect(response?.headers.get('location')).toBe('/redirect-via-guard?filter=test'); expect(response?.status).toBe(302); }); + + it('should work with encoded characters', async () => { + const request = new Request('http://localhost/home?email=xyz%40xyz.com'); + const response = await app.handle(request); + expect(response?.status).toBe(200); + expect(await response?.text()).toContain('Home works'); + }); + + it('should work with decoded characters', async () => { + const request = new Request('http://localhost/home?email=xyz@xyz.com'); + const response = await app.handle(request); + expect(response?.status).toBe(200); + expect(await response?.text()).toContain('Home works'); + }); + + describe('APP_BASE_HREF / X-Forwarded-Prefix', () => { + const headers = new Headers({ 'X-Forwarded-Prefix': '/base/' }); + + it('should return a rendered page for known paths', async () => { + const request = new Request('https://example.com/home', { headers }); + const response = await app.handle(request); + expect(await response?.text()).toContain('Home works'); + }); + + it('returns a 302 status and redirects to the correct location when `redirectTo` is a function', async () => { + const response = await app.handle( + new Request('http://localhost/redirect-to-function', { + headers, + }), + ); + expect(response?.headers.get('location')).toBe('/base/home'); + expect(response?.status).toBe(302); + }); + + it('returns a 302 status and redirects to the correct location when `redirectTo` is a string', async () => { + const response = await app.handle( + new Request('http://localhost/redirect', { + headers, + }), + ); + expect(response?.headers.get('location')).toBe('/base/home'); + expect(response?.status).toBe(302); + }); + }); }); }); }); From d4ca7b7afa0dca13738cf0c3fbf5be5055fac1b7 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:58:28 +0000 Subject: [PATCH 228/228] release: cut the v20.3.12 release --- CHANGELOG.md | 19 +++++++++++++++++++ package.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4be84a714b12..75cf55112e3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ + + +# 20.3.12 (2025-11-25) + +### @angular/build + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------- | +| [25bb7e65c](https://github.com/angular/angular-cli/commit/25bb7e65c4fc7e401c658126c53b0b7a13d62965) | fix | ensure correct URL joining for prerender routes | + +### @angular/ssr + +| Commit | Type | Description | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------ | +| [cceb86296](https://github.com/angular/angular-cli/commit/cceb862969e541a5f54b689a6439e32773eafe65) | fix | handle `X-Forwarded-Prefix` and `APP_BASE_HREF` in redirects | +| [1abe68ad8](https://github.com/angular/angular-cli/commit/1abe68ad87f9b892734117a087b5775068bd232b) | fix | prevent redirect loop with encoded query parameters | + + + # 20.3.11 (2025-11-19) diff --git a/package.json b/package.json index 8c277a5e0c02..a4d839e71740 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/devkit-repo", - "version": "20.3.11", + "version": "20.3.12", "private": true, "description": "Software Development Kit for Angular", "keywords": [