Files
langgraphjs/examples/ui-angular
dependabot[bot] 5d817d0f2e chore(deps): bump the angular group across 1 directory with 12 updates (#2617)
Bumps the angular group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common)
| `22.0.4` | `22.0.8` |
|
[@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler)
| `22.0.4` | `22.0.8` |
|
[@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core)
| `22.0.4` | `22.0.8` |
|
[@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms)
| `22.0.4` | `22.0.8` |
|
[@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser)
| `22.0.4` | `22.0.8` |
|
[@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router)
| `22.0.4` | `22.0.8` |
| [@angular/build](https://github.com/angular/angular-cli) | `22.0.5` |
`22.0.8` |
| [@angular/cli](https://github.com/angular/angular-cli) | `22.0.5` |
`22.0.8` |
|
[@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli)
| `22.0.4` | `22.0.8` |
| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) |
`2.6.2` | `2.6.4` |
| [@analogjs/vitest-angular](https://github.com/analogjs/analog) |
`2.6.2` | `2.6.4` |
|
[@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic)
| `22.0.4` | `22.0.8` |


Updates `@angular/common` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/common's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<p>| Commit | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/common's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.8 (2026-07-22)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4">c0368f2278</a></td>
<td>fix</td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b">8616ba9db6</a></td>
<td>fix</td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7">d302c7ab83</a></td>
<td>fix</td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2">9d40f8aefe</a></td>
<td>fix</td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846">388daea2fc</a></td>
<td>fix</td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221">bb39cda648</a></td>
<td>fix</td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.6 (2026-07-15)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/359fb503b8f262db7a053febc18c416f966e8185">359fb503b8</a></td>
<td>fix</td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/da52137724b8cce79b036026fa1aa07bc730389c">da52137724</a></td>
<td>fix</td>
<td>parsing of an empty template literal interpolation</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5bd00add071e404ddab318eea82db81b5715a194">5bd00add07</a></td>
<td>fix</td>
<td>support foreign components inside control flow blocks (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2e442f787627a1f44d8b6463a1cb979ef6f7e049">2e442f7876</a></td>
<td>perf</td>
<td>do not emit tag name when control flow root is foreign component (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ae0ec7315c6fbc45ce40581a08a8243a008a91ec">ae0ec7315c</a></td>
<td>fix</td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9b9b0e93c90c0ecfc7f075a64908cce00eb03f38">9b9b0e93c9</a></td>
<td>fix</td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/68ac20407466f0d3e6f5c5016f1273672b5d2b34">68ac204074</a></td>
<td>fix</td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/0ae6d81ed2a83b1ebbb75dabc53af77b8db86c41">0ae6d81ed2</a></td>
<td>fix</td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><code>c0368f2</code></a>
fix(common): preserve crossorigin on image preloads</li>
<li><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><code>9d40f8a</code></a>
fix(http): prevent transfer cache key collisions</li>
<li><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><code>91e33aa</code></a>
fix(common): avoid prototype lookups in date format caches</li>
<li><a
href="https://github.com/angular/angular/commit/20b7dc3023df9ccde232cf9fef1d2b1d3ae68b23"><code>20b7dc3</code></a>
fix(http): prevent interceptor signal reads from leaking into calling
reactiv...</li>
<li><a
href="https://github.com/angular/angular/commit/748faa4f95dfdae1570057f7af1bc7031e80a94a"><code>748faa4</code></a>
docs(docs-infra): Add build-time validation for API and guide links
using rou...</li>
<li><a
href="https://github.com/angular/angular/commit/8e6d7f71906e35181577b9e66474695ba3077599"><code>8e6d7f7</code></a>
fix(router): use safe hasOwnProperty when parsing query params</li>
<li><a
href="https://github.com/angular/angular/commit/eb8fb9fe58687fe0f341dc3beb5d0fb469605179"><code>eb8fb9f</code></a>
fix(common): use Object.hasOwn in I18nSelectPipe to handle
null-prototype and...</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.8/packages/common">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/compiler` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/compiler's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<p>| Commit | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/compiler's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.8 (2026-07-22)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4">c0368f2278</a></td>
<td>fix</td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b">8616ba9db6</a></td>
<td>fix</td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7">d302c7ab83</a></td>
<td>fix</td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2">9d40f8aefe</a></td>
<td>fix</td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846">388daea2fc</a></td>
<td>fix</td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221">bb39cda648</a></td>
<td>fix</td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.6 (2026-07-15)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/359fb503b8f262db7a053febc18c416f966e8185">359fb503b8</a></td>
<td>fix</td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/da52137724b8cce79b036026fa1aa07bc730389c">da52137724</a></td>
<td>fix</td>
<td>parsing of an empty template literal interpolation</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5bd00add071e404ddab318eea82db81b5715a194">5bd00add07</a></td>
<td>fix</td>
<td>support foreign components inside control flow blocks (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2e442f787627a1f44d8b6463a1cb979ef6f7e049">2e442f7876</a></td>
<td>perf</td>
<td>do not emit tag name when control flow root is foreign component (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ae0ec7315c6fbc45ce40581a08a8243a008a91ec">ae0ec7315c</a></td>
<td>fix</td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9b9b0e93c90c0ecfc7f075a64908cce00eb03f38">9b9b0e93c9</a></td>
<td>fix</td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/68ac20407466f0d3e6f5c5016f1273672b5d2b34">68ac204074</a></td>
<td>fix</td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/0ae6d81ed2a83b1ebbb75dabc53af77b8db86c41">0ae6d81ed2</a></td>
<td>fix</td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/3854174ec4a25e21abaef4ddd9d968a5b46fc832"><code>3854174</code></a>
refactor(compiler): enforce exhaustive defer trigger handling</li>
<li><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><code>c89f71a</code></a>
fix(core): ignore processing instruction syntax in templates</li>
<li><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><code>5b516e3</code></a>
fix(compiler): parsing of an empty template literal interpolation</li>
<li><a
href="https://github.com/angular/angular/commit/fd4ddcafed340dbc116df9718f03ee9e16c41c18"><code>fd4ddca</code></a>
fix(compiler): use regular optional chaining expression for safe
function cal...</li>
<li><a
href="https://github.com/angular/angular/commit/b5ea3408ce1414c5c93a4d252a298e1ef18f447e"><code>b5ea340</code></a>
refactor(compiler): remove <code>visitAttributeComment</code></li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.8/packages/compiler">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/core` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/core's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<p>| Commit | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/core's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.8 (2026-07-22)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4">c0368f2278</a></td>
<td>fix</td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b">8616ba9db6</a></td>
<td>fix</td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7">d302c7ab83</a></td>
<td>fix</td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2">9d40f8aefe</a></td>
<td>fix</td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846">388daea2fc</a></td>
<td>fix</td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221">bb39cda648</a></td>
<td>fix</td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.6 (2026-07-15)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/359fb503b8f262db7a053febc18c416f966e8185">359fb503b8</a></td>
<td>fix</td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/da52137724b8cce79b036026fa1aa07bc730389c">da52137724</a></td>
<td>fix</td>
<td>parsing of an empty template literal interpolation</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5bd00add071e404ddab318eea82db81b5715a194">5bd00add07</a></td>
<td>fix</td>
<td>support foreign components inside control flow blocks (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2e442f787627a1f44d8b6463a1cb979ef6f7e049">2e442f7876</a></td>
<td>perf</td>
<td>do not emit tag name when control flow root is foreign component (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ae0ec7315c6fbc45ce40581a08a8243a008a91ec">ae0ec7315c</a></td>
<td>fix</td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9b9b0e93c90c0ecfc7f075a64908cce00eb03f38">9b9b0e93c9</a></td>
<td>fix</td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/68ac20407466f0d3e6f5c5016f1273672b5d2b34">68ac204074</a></td>
<td>fix</td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/0ae6d81ed2a83b1ebbb75dabc53af77b8db86c41">0ae6d81ed2</a></td>
<td>fix</td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><code>388daea</code></a>
fix(migrations): correctly migrate ngClass with mixed space-separated
keys</li>
<li><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><code>8616ba9</code></a>
fix(core): ensure SVG animation attributeName is checked
case-insensitively</li>
<li><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><code>bb39cda</code></a>
fix(migrations): preserve NgClass import on partial migration</li>
<li><a
href="https://github.com/angular/angular/commit/829d98e9ae08b12a2c4a624a64f87660d6dfde26"><code>829d98e</code></a>
build: update cross-repo angular dependencies to v22.0.7</li>
<li><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><code>70500e4</code></a>
fix(core): preserve explicit input transform write type</li>
<li><a
href="https://github.com/angular/angular/commit/e881b962cc45ddc7d60da095bac496a7709f25cb"><code>e881b96</code></a>
refactor(core): move signal debug graph interfaces to
primitives/devtools</li>
<li><a
href="https://github.com/angular/angular/commit/1046fd9e56b607ddc3f22ffd86af7c3bddec40ce"><code>1046fd9</code></a>
refactor(core): remove deprecated <code>unregisterTool</code> from
<code>ModelContext</code></li>
<li><a
href="https://github.com/angular/angular/commit/5936ffb80cf729667951a43b2da479d663fb5c98"><code>5936ffb</code></a>
refactor(core): update WebMCP tool registration to be asynchronous</li>
<li><a
href="https://github.com/angular/angular/commit/c82ae67e3d866daea488c9cb312c45bbb19c7b33"><code>c82ae67</code></a>
Revert &quot;fix(core): allow static attributes for explicit input
transforms&quot;</li>
<li><a
href="https://github.com/angular/angular/commit/ec9b4793e88828257cae38ac75b8e1c5392022ff"><code>ec9b479</code></a>
build: update cross-repo angular dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.8/packages/core">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/forms` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/forms's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<p>| Commit | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/forms's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.8 (2026-07-22)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4">c0368f2278</a></td>
<td>fix</td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b">8616ba9db6</a></td>
<td>fix</td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7">d302c7ab83</a></td>
<td>fix</td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2">9d40f8aefe</a></td>
<td>fix</td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846">388daea2fc</a></td>
<td>fix</td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221">bb39cda648</a></td>
<td>fix</td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.6 (2026-07-15)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/359fb503b8f262db7a053febc18c416f966e8185">359fb503b8</a></td>
<td>fix</td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/da52137724b8cce79b036026fa1aa07bc730389c">da52137724</a></td>
<td>fix</td>
<td>parsing of an empty template literal interpolation</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5bd00add071e404ddab318eea82db81b5715a194">5bd00add07</a></td>
<td>fix</td>
<td>support foreign components inside control flow blocks (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2e442f787627a1f44d8b6463a1cb979ef6f7e049">2e442f7876</a></td>
<td>perf</td>
<td>do not emit tag name when control flow root is foreign component (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ae0ec7315c6fbc45ce40581a08a8243a008a91ec">ae0ec7315c</a></td>
<td>fix</td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9b9b0e93c90c0ecfc7f075a64908cce00eb03f38">9b9b0e93c9</a></td>
<td>fix</td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/68ac20407466f0d3e6f5c5016f1273672b5d2b34">68ac204074</a></td>
<td>fix</td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/0ae6d81ed2a83b1ebbb75dabc53af77b8db86c41">0ae6d81ed2</a></td>
<td>fix</td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><code>d302c7a</code></a>
fix(forms): ensure <code>pending</code> status propagates to the root
form in signal forms</li>
<li><a
href="https://github.com/angular/angular/commit/e14ead1093a40200bc1bd4162611dcb9862fc714"><code>e14ead1</code></a>
Revert &quot;fix(forms): preserve intermediate number values in signal
forms&quot;</li>
<li><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><code>64d6d47</code></a>
fix(forms): preserve intermediate number values in signal forms</li>
<li><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><code>70500e4</code></a>
fix(core): preserve explicit input transform write type</li>
<li><a
href="https://github.com/angular/angular/commit/a6174d5900570ec0ce72683438bdbbc39158f96d"><code>a6174d5</code></a>
refactor(forms): warn when a text input receives a null value in Signal
Forms</li>
<li><a
href="https://github.com/angular/angular/commit/5936ffb80cf729667951a43b2da479d663fb5c98"><code>5936ffb</code></a>
refactor(core): update WebMCP tool registration to be asynchronous</li>
<li><a
href="https://github.com/angular/angular/commit/5d06fcb1092d121a8990ef7934bfba0b599ff6f2"><code>5d06fcb</code></a>
test(forms): register writeback test control as CVA</li>
<li><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><code>6cf7446</code></a>
fix(forms): prevent stale CVA writeback during debounce</li>
<li><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><code>1b99646</code></a>
fix(forms): allow multiple async validators</li>
<li><a
href="https://github.com/angular/angular/commit/eca3395019cf019452e2d1b6eacc43555c313e2d"><code>eca3395</code></a>
removed console log</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.8/packages/forms">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/platform-browser` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/platform-browser's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<p>| Commit | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/platform-browser's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.8 (2026-07-22)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4">c0368f2278</a></td>
<td>fix</td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b">8616ba9db6</a></td>
<td>fix</td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7">d302c7ab83</a></td>
<td>fix</td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2">9d40f8aefe</a></td>
<td>fix</td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846">388daea2fc</a></td>
<td>fix</td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221">bb39cda648</a></td>
<td>fix</td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.6 (2026-07-15)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/359fb503b8f262db7a053febc18c416f966e8185">359fb503b8</a></td>
<td>fix</td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/da52137724b8cce79b036026fa1aa07bc730389c">da52137724</a></td>
<td>fix</td>
<td>parsing of an empty template literal interpolation</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5bd00add071e404ddab318eea82db81b5715a194">5bd00add07</a></td>
<td>fix</td>
<td>support foreign components inside control flow blocks (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2e442f787627a1f44d8b6463a1cb979ef6f7e049">2e442f7876</a></td>
<td>perf</td>
<td>do not emit tag name when control flow root is foreign component (<a
href="https://redirect.github.com/angular/angular/pull/69674">#69674</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ae0ec7315c6fbc45ce40581a08a8243a008a91ec">ae0ec7315c</a></td>
<td>fix</td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9b9b0e93c90c0ecfc7f075a64908cce00eb03f38">9b9b0e93c9</a></td>
<td>fix</td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/68ac20407466f0d3e6f5c5016f1273672b5d2b34">68ac204074</a></td>
<td>fix</td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/0ae6d81ed2a83b1ebbb75dabc53af77b8db86c41">0ae6d81ed2</a></td>
<td>fix</td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/b34bf0dce855bca3c6dfcf7e19d38b3b39288a16"><code>b34bf0d</code></a>
fix(platform-browser): prevent ReDoS in SOURCEMAP_URL_REGEXP</li>
<li><a
href="https://github.com/angular/angular/commit/ab18f5ff0bfdd7ef5f3050c1a271c1553b30f608"><code>ab18f5f</code></a>
refactor(core): cleanup Meta service</li>
<li><a
href="https://github.com/angular/angular/commit/748faa4f95dfdae1570057f7af1bc7031e80a94a"><code>748faa4</code></a>
docs(docs-infra): Add build-time validation for API and guide links
using rou...</li>
<li><a
href="https://github.com/angular/angular/commit/97197786b3d77154ace1c8e638c12ccc12b4610f"><code>9719778</code></a>
docs: add NG05200 error reference page for
SANITIZATION_UNSAFE_SCRIPT</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.8/packages/platform-browser">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/router` from 22.0.4 to 22.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/router's
releases</a>.</em></p>
<blockquote>
<h2>22.0.8</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c0368f227846024bb26d3628c59541e870bb36e4"><img
src="https://img.shields.io/badge/c0368f2278-fix-green" alt="fix -
c0368f2278" /></a></td>
<td>preserve crossorigin on image preloads</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8616ba9db6240f3fbf8b905342d07326e096302b"><img
src="https://img.shields.io/badge/8616ba9db6-fix-green" alt="fix -
8616ba9db6" /></a></td>
<td>ensure SVG animation attributeName is checked
case-insensitively</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d302c7ab833c0bd3bba951135e76e0c48273b3d7"><img
src="https://img.shields.io/badge/d302c7ab83-fix-green" alt="fix -
d302c7ab83" /></a></td>
<td>ensure <code>pending</code> status propagates to the root form in
signal forms</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9d40f8aefef9dcd893db5d01bc58d3e65e1cb4c2"><img
src="https://img.shields.io/badge/9d40f8aefe-fix-green" alt="fix -
9d40f8aefe" /></a></td>
<td>prevent transfer cache key collisions</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/388daea2fc188aad3ab69fb81bd3f893ac3cd846"><img
src="https://img.shields.io/badge/388daea2fc-fix-green" alt="fix -
388daea2fc" /></a></td>
<td>correctly migrate ngClass with mixed space-separated keys</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bb39cda6483de2edab2f8221459b0ed5b73ef221"><img
src="https://img.shields.io/badge/bb39cda648-fix-green" alt="fix -
bb39cda648" /></a></td>
<td>preserve NgClass import on partial migration</td>
</tr>
</tbody>
</table>
<h2>22.0.7</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91e33aa1de47d250d8cde21047597e8df771f07d"><img
src="https://img.shields.io/badge/91e33aa1de-fix-green" alt="fix -
91e33aa1de" /></a></td>
<td>avoid prototype lookups in date format caches</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/5b516e3a58e1233f2e01cbb53267b9563a72d5f1"><img
src="https://img.shields.io/badge/5b516e3a58-fix-green" alt="fix -
5b516e3a58" /></a></td>
<td>parsing of an empty template literal interpolation</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c88ddde1c9f56e3b5c5cf264e87217b86a036a58"><img
src="https://img.shields.io/badge/c88ddde1c9-fix-green" alt="fix -
c88ddde1c9" /></a></td>
<td>re-tag SourceFiles after TsCreateProgramDriver.updateFiles()</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94d9591b512c94577080c77911dbd1c3516a8a81"><img
src="https://img.shields.io/badge/94d9591b51-fix-green" alt="fix -
94d9591b51" /></a></td>
<td>allow static attributes for explicit input transforms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c89f71a74ce312f9f6522796a106eac48bd33ebb"><img
src="https://img.shields.io/badge/c89f71a74c-fix-green" alt="fix -
c89f71a74c" /></a></td>
<td>ignore processing instruction syntax in templates</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/70500e4067e74e5b5f79a15774b5d2f01524f397"><img
src="https://img.shields.io/badge/70500e4067-fix-green" alt="fix -
70500e4067" /></a></td>
<td>preserve explicit input transform write type</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/1b9964675f0cfee30a0e8f6df664d1961a3dc3ae"><img
src="https://img.shields.io/badge/1b9964675f-fix-green" alt="fix -
1b9964675f" /></a></td>
<td>allow multiple async validators</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/64d6d47a0c67709ce887a90666fc214c40a283c4"><img
src="https://img.shields.io/badge/64d6d47a0c-fix-green" alt="fix -
64d6d47a0c" /></a></td>
<td>preserve intermediate number values in signal forms</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6cf7446afaedd461b9e28291e326f6f2372fa157"><img
src="https://img.shields.io/badge/6cf7446afa-fix-green" alt="fix -
6cf7446afa" /></a></td>
<td>prevent stale CVA writeback during debounce</td>
</tr>
</tbody>
</table>
<h3>h...

_Description has been truncated_

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-24 11:13:54 -07:00
..
2026-06-25 14:47:39 -07:00