Files
vercel/packages/static-build/test/fixtures/angular-v17
dependabot[bot] 64b97bf4b5 [framework-fixtures]: Bump the core group in /packages/static-build/test/fixtures/angular-v17 with 15 updates (#11274)
Bumps the core group in /packages/static-build/test/fixtures/angular-v17 with 15 updates:

| Package | From | To |
| --- | --- | --- |
| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `17.2.1` | `17.3.0` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `17.2.1` | `17.3.0` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `17.2.1` | `17.3.0` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `17.2.1` | `17.3.0` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `17.2.1` | `17.3.0` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `17.2.1` | `17.3.0` |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `17.2.1` | `17.3.0` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `17.2.1` | `17.3.0` |
| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `17.2.0` | `17.3.0` |
| [@angular/cli](https://github.com/angular/angular-cli) | `17.2.0` | `17.3.0` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `17.2.1` | `17.3.0` |
| [@angular-devkit/architect](https://github.com/angular/angular-cli) | `0.1702.0` | `0.1703.0` |
| [@angular-devkit/build-webpack](https://github.com/angular/angular-cli) | `0.1702.0` | `0.1703.0` |
| [@angular-devkit/core](https://github.com/angular/angular-cli) | `17.2.0` | `17.3.0` |
| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `17.2.0` | `17.3.0` |

Updates `@angular/animations` from 17.2.1 to 17.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@​angular/animations</code>'s releases</a>.</em></p>
<blockquote>
<h2>v17.3.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2"><img src="https://img.shields.io/badge/1a6beae8a2-feat-blue" alt="feat - 1a6beae8a2" /></a></td>
<td>Enable template pipeline by default. (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d"><img src="https://img.shields.io/badge/f386a04c9d-fix-green" alt="fix - f386a04c9d" /></a></td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e"><img src="https://img.shields.io/badge/1f129f114e-fix-green" alt="fix - 1f129f114e" /></a></td>
<td>not catching for loop empty tracking expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54772">#54772</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="12dc4d074e"><img src="https://img.shields.io/badge/12dc4d074e-fix-green" alt="fix - 12dc4d074e" /></a></td>
<td>account for as expression in docs extraction (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0"><img src="https://img.shields.io/badge/da7fbb40f0-fix-green" alt="fix - da7fbb40f0" /></a></td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699"><img src="https://img.shields.io/badge/492e03f699-fix-green" alt="fix - 492e03f699" /></a></td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54650">#54650</a>)</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="331b16efd2"><img src="https://img.shields.io/badge/331b16efd2-feat-blue" alt="feat - 331b16efd2" /></a></td>
<td>add API to inject attributes on the host node (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a"><img src="https://img.shields.io/badge/fb540e169a-feat-blue" alt="feat - fb540e169a" /></a></td>
<td>add migration for invalid two-way bindings (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453"><img src="https://img.shields.io/badge/c687b8f453-feat-blue" alt="feat - c687b8f453" /></a></td>
<td>expose new <code>output()</code> API (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21"><img src="https://img.shields.io/badge/c809069f21-feat-blue" alt="feat - c809069f21" /></a></td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4"><img src="https://img.shields.io/badge/aff65fd1f4-feat-blue" alt="feat - aff65fd1f4" /></a></td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c"><img src="https://img.shields.io/badge/974958913c-feat-blue" alt="feat - 974958913c" /></a></td>
<td>support TypeScript 5.4 (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d"><img src="https://img.shields.io/badge/39a50f9a8d-fix-green" alt="fix - 39a50f9a8d" /></a></td>
<td>ensure all initializer functions run in an injection context (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624"><img src="https://img.shields.io/badge/243ccce624-fix-green" alt="fix - 243ccce624" /></a></td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d"><img src="https://img.shields.io/badge/2909e9817d-fix-green" alt="fix - 2909e9817d" /></a></td>
<td>prevent infinite loops in clobbered elements check (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf"><img src="https://img.shields.io/badge/7243c704cf-fix-green" alt="fix - 7243c704cf" /></a></td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38"><img src="https://img.shields.io/badge/bb35414a38-perf-orange" alt="perf - bb35414a38" /></a></td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54748">#54748</a>)</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="8d37ed035c"><img src="https://img.shields.io/badge/8d37ed035c-fix-green" alt="fix - 8d37ed035c" /></a></td>
<td>exclude caching for authenticated HTTP requests (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02"><img src="https://img.shields.io/badge/c1c7384e02-feat-blue" alt="feat - c1c7384e02" /></a></td>
<td>Add reusable types for router guards (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311"><img src="https://img.shields.io/badge/7225485311-fix-green" alt="fix - 7225485311" /></a></td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<h2>v17.3.0-rc.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0-rc.0 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="ae7dbe42de"><img src="https://img.shields.io/badge/ae7dbe42de-fix-green" alt="fix - ae7dbe42de" /></a></td>
<td>unwrap expressions with type parameters in query read property (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/54647">#54647</a>)</td>
</tr>
</tbody>
</table>
<h3>core</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"><code>@​angular/animations</code>'s changelog</a>.</em></p>
<blockquote>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2">1a6beae8a2</a></td>
<td>feat</td>
<td>Enable template pipeline by default. (<a href="https://redirect.github.com/angular/angular/pull/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d">f386a04c9d</a></td>
<td>fix</td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e">1f129f114e</a></td>
<td>fix</td>
<td>not catching for loop empty tracking expressions (<a href="https://redirect.github.com/angular/angular/pull/54772">#54772</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="12dc4d074e">12dc4d074e</a></td>
<td>fix</td>
<td>account for as expression in docs extraction (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0">da7fbb40f0</a></td>
<td>fix</td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://redirect.github.com/angular/angular/pull/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699">492e03f699</a></td>
<td>fix</td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1">5afa4f0ec1</a></td>
<td>fix</td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</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="331b16efd2">331b16efd2</a></td>
<td>feat</td>
<td>add API to inject attributes on the host node (<a href="https://redirect.github.com/angular/angular/pull/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a">fb540e169a</a></td>
<td>feat</td>
<td>add migration for invalid two-way bindings (<a href="https://redirect.github.com/angular/angular/pull/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453">c687b8f453</a></td>
<td>feat</td>
<td>expose new <code>output()</code> API (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21">c809069f21</a></td>
<td>feat</td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4">aff65fd1f4</a></td>
<td>feat</td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c">974958913c</a></td>
<td>feat</td>
<td>support TypeScript 5.4 (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d">39a50f9a8d</a></td>
<td>fix</td>
<td>ensure all initializer functions run in an injection context (<a href="https://redirect.github.com/angular/angular/pull/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624">243ccce624</a></td>
<td>fix</td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://redirect.github.com/angular/angular/pull/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d">2909e9817d</a></td>
<td>fix</td>
<td>prevent infinite loops in clobbered elements check (<a href="https://redirect.github.com/angular/angular/pull/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf">7243c704cf</a></td>
<td>fix</td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://redirect.github.com/angular/angular/pull/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38">bb35414a38</a></td>
<td>perf</td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://redirect.github.com/angular/angular/pull/54748">#54748</a>)</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="8d37ed035c">8d37ed035c</a></td>
<td>fix</td>
<td>exclude caching for authenticated HTTP requests (<a href="https://redirect.github.com/angular/angular/pull/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02">c1c7384e02</a></td>
<td>feat</td>
<td>Add reusable types for router guards (<a href="https://redirect.github.com/angular/angular/pull/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311">7225485311</a></td>
<td>fix</td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://redirect.github.com/angular/angular/pull/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.2.4 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="917b9bdd2e">917b9bdd2e</a></td>
<td>fix</td>
<td>unwrap expressions with type parameters in query read property (<a href="https://redirect.github.com/angular/angular/pull/54647">#54647</a>)</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="586cc24a10">586cc24a10</a></td>
<td>fix</td>
<td>apply TestBed provider overrides to <code>@defer</code> dependencies (<a href="https://redirect.github.com/angular/angular/pull/54667">#54667</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/angular/angular/commits/17.3.0/packages/animations">compare view</a></li>
</ul>
</details>
<br />

Updates `@angular/common` from 17.2.1 to 17.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@​angular/common</code>'s releases</a>.</em></p>
<blockquote>
<h2>v17.3.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2"><img src="https://img.shields.io/badge/1a6beae8a2-feat-blue" alt="feat - 1a6beae8a2" /></a></td>
<td>Enable template pipeline by default. (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d"><img src="https://img.shields.io/badge/f386a04c9d-fix-green" alt="fix - f386a04c9d" /></a></td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e"><img src="https://img.shields.io/badge/1f129f114e-fix-green" alt="fix - 1f129f114e" /></a></td>
<td>not catching for loop empty tracking expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54772">#54772</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="12dc4d074e"><img src="https://img.shields.io/badge/12dc4d074e-fix-green" alt="fix - 12dc4d074e" /></a></td>
<td>account for as expression in docs extraction (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0"><img src="https://img.shields.io/badge/da7fbb40f0-fix-green" alt="fix - da7fbb40f0" /></a></td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699"><img src="https://img.shields.io/badge/492e03f699-fix-green" alt="fix - 492e03f699" /></a></td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54650">#54650</a>)</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="331b16efd2"><img src="https://img.shields.io/badge/331b16efd2-feat-blue" alt="feat - 331b16efd2" /></a></td>
<td>add API to inject attributes on the host node (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a"><img src="https://img.shields.io/badge/fb540e169a-feat-blue" alt="feat - fb540e169a" /></a></td>
<td>add migration for invalid two-way bindings (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453"><img src="https://img.shields.io/badge/c687b8f453-feat-blue" alt="feat - c687b8f453" /></a></td>
<td>expose new <code>output()</code> API (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21"><img src="https://img.shields.io/badge/c809069f21-feat-blue" alt="feat - c809069f21" /></a></td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4"><img src="https://img.shields.io/badge/aff65fd1f4-feat-blue" alt="feat - aff65fd1f4" /></a></td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c"><img src="https://img.shields.io/badge/974958913c-feat-blue" alt="feat - 974958913c" /></a></td>
<td>support TypeScript 5.4 (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d"><img src="https://img.shields.io/badge/39a50f9a8d-fix-green" alt="fix - 39a50f9a8d" /></a></td>
<td>ensure all initializer functions run in an injection context (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624"><img src="https://img.shields.io/badge/243ccce624-fix-green" alt="fix - 243ccce624" /></a></td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d"><img src="https://img.shields.io/badge/2909e9817d-fix-green" alt="fix - 2909e9817d" /></a></td>
<td>prevent infinite loops in clobbered elements check (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf"><img src="https://img.shields.io/badge/7243c704cf-fix-green" alt="fix - 7243c704cf" /></a></td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38"><img src="https://img.shields.io/badge/bb35414a38-perf-orange" alt="perf - bb35414a38" /></a></td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54748">#54748</a>)</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="8d37ed035c"><img src="https://img.shields.io/badge/8d37ed035c-fix-green" alt="fix - 8d37ed035c" /></a></td>
<td>exclude caching for authenticated HTTP requests (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02"><img src="https://img.shields.io/badge/c1c7384e02-feat-blue" alt="feat - c1c7384e02" /></a></td>
<td>Add reusable types for router guards (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311"><img src="https://img.shields.io/badge/7225485311-fix-green" alt="fix - 7225485311" /></a></td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<h2>v17.3.0-rc.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0-rc.0 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="ae7dbe42de"><img src="https://img.shields.io/badge/ae7dbe42de-fix-green" alt="fix - ae7dbe42de" /></a></td>
<td>unwrap expressions with type parameters in query read property (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54647">#54647</a>)</td>
</tr>
</tbody>
</table>
<h3>core</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"><code>@​angular/common</code>'s changelog</a>.</em></p>
<blockquote>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2">1a6beae8a2</a></td>
<td>feat</td>
<td>Enable template pipeline by default. (<a href="https://redirect.github.com/angular/angular/pull/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d">f386a04c9d</a></td>
<td>fix</td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e">1f129f114e</a></td>
<td>fix</td>
<td>not catching for loop empty tracking expressions (<a href="https://redirect.github.com/angular/angular/pull/54772">#54772</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="12dc4d074e">12dc4d074e</a></td>
<td>fix</td>
<td>account for as expression in docs extraction (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0">da7fbb40f0</a></td>
<td>fix</td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://redirect.github.com/angular/angular/pull/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699">492e03f699</a></td>
<td>fix</td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1">5afa4f0ec1</a></td>
<td>fix</td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</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="331b16efd2">331b16efd2</a></td>
<td>feat</td>
<td>add API to inject attributes on the host node (<a href="https://redirect.github.com/angular/angular/pull/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a">fb540e169a</a></td>
<td>feat</td>
<td>add migration for invalid two-way bindings (<a href="https://redirect.github.com/angular/angular/pull/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453">c687b8f453</a></td>
<td>feat</td>
<td>expose new <code>output()</code> API (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21">c809069f21</a></td>
<td>feat</td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4">aff65fd1f4</a></td>
<td>feat</td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c">974958913c</a></td>
<td>feat</td>
<td>support TypeScript 5.4 (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d">39a50f9a8d</a></td>
<td>fix</td>
<td>ensure all initializer functions run in an injection context (<a href="https://redirect.github.com/angular/angular/pull/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624">243ccce624</a></td>
<td>fix</td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://redirect.github.com/angular/angular/pull/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d">2909e9817d</a></td>
<td>fix</td>
<td>prevent infinite loops in clobbered elements check (<a href="https://redirect.github.com/angular/angular/pull/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf">7243c704cf</a></td>
<td>fix</td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://redirect.github.com/angular/angular/pull/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38">bb35414a38</a></td>
<td>perf</td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://redirect.github.com/angular/angular/pull/54748">#54748</a>)</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="8d37ed035c">8d37ed035c</a></td>
<td>fix</td>
<td>exclude caching for authenticated HTTP requests (<a href="https://redirect.github.com/angular/angular/pull/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02">c1c7384e02</a></td>
<td>feat</td>
<td>Add reusable types for router guards (<a href="https://redirect.github.com/angular/angular/pull/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311">7225485311</a></td>
<td>fix</td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://redirect.github.com/angular/angular/pull/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.2.4 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="917b9bdd2e">917b9bdd2e</a></td>
<td>fix</td>
<td>unwrap expressions with type parameters in query read property (<a href="https://redirect.github.com/angular/angular/pull/54647">#54647</a>)</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="586cc24a10">586cc24a10</a></td>
<td>fix</td>
<td>apply TestBed provider overrides to <code>@defer</code> dependencies (<a href="https://redirect.github.com/angular/angular/pull/54667">#54667</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8d37ed035c"><code>8d37ed0</code></a> fix(http): exclude caching for authenticated HTTP requests (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54746">#54746</a>)</li>
<li><a href="974958913c"><code>9749589</code></a> feat(core): support TypeScript 5.4 (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54414">#54414</a>)</li>
<li><a href="707bfc9b32"><code>707bfc9</code></a> perf(common): <code>AsyncPipe</code> should not call <code>markForCheck</code> on subscription (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54">#54</a>...</li>
<li><a href="55fd7b3c85"><code>55fd7b3</code></a> docs(docs-infra): Add missing api entries (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54517">#54517</a>)</li>
<li><a href="219445cda4"><code>219445c</code></a> fix(common): image placeholder not removed in OnPush component (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54515">#54515</a>)</li>
<li><a href="74b5a51226"><code>74b5a51</code></a> fix(http): Use string body to generate transfer cache key. (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/54379">#54379</a>)</li>
<li>See full diff in <a href="https://github.com/angular/angular/commits/17.3.0/packages/common">compare view</a></li>
</ul>
</details>
<br />

Updates `@angular/compiler` from 17.2.1 to 17.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@​angular/compiler</code>'s releases</a>.</em></p>
<blockquote>
<h2>v17.3.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2"><img src="https://img.shields.io/badge/1a6beae8a2-feat-blue" alt="feat - 1a6beae8a2" /></a></td>
<td>Enable template pipeline by default. (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d"><img src="https://img.shields.io/badge/f386a04c9d-fix-green" alt="fix - f386a04c9d" /></a></td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e"><img src="https://img.shields.io/badge/1f129f114e-fix-green" alt="fix - 1f129f114e" /></a></td>
<td>not catching for loop empty tracking expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54772">#54772</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="12dc4d074e"><img src="https://img.shields.io/badge/12dc4d074e-fix-green" alt="fix - 12dc4d074e" /></a></td>
<td>account for as expression in docs extraction (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0"><img src="https://img.shields.io/badge/da7fbb40f0-fix-green" alt="fix - da7fbb40f0" /></a></td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699"><img src="https://img.shields.io/badge/492e03f699-fix-green" alt="fix - 492e03f699" /></a></td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54650">#54650</a>)</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="331b16efd2"><img src="https://img.shields.io/badge/331b16efd2-feat-blue" alt="feat - 331b16efd2" /></a></td>
<td>add API to inject attributes on the host node (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a"><img src="https://img.shields.io/badge/fb540e169a-feat-blue" alt="feat - fb540e169a" /></a></td>
<td>add migration for invalid two-way bindings (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453"><img src="https://img.shields.io/badge/c687b8f453-feat-blue" alt="feat - c687b8f453" /></a></td>
<td>expose new <code>output()</code> API (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21"><img src="https://img.shields.io/badge/c809069f21-feat-blue" alt="feat - c809069f21" /></a></td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4"><img src="https://img.shields.io/badge/aff65fd1f4-feat-blue" alt="feat - aff65fd1f4" /></a></td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c"><img src="https://img.shields.io/badge/974958913c-feat-blue" alt="feat - 974958913c" /></a></td>
<td>support TypeScript 5.4 (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d"><img src="https://img.shields.io/badge/39a50f9a8d-fix-green" alt="fix - 39a50f9a8d" /></a></td>
<td>ensure all initializer functions run in an injection context (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624"><img src="https://img.shields.io/badge/243ccce624-fix-green" alt="fix - 243ccce624" /></a></td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d"><img src="https://img.shields.io/badge/2909e9817d-fix-green" alt="fix - 2909e9817d" /></a></td>
<td>prevent infinite loops in clobbered elements check (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf"><img src="https://img.shields.io/badge/7243c704cf-fix-green" alt="fix - 7243c704cf" /></a></td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38"><img src="https://img.shields.io/badge/bb35414a38-perf-orange" alt="perf - bb35414a38" /></a></td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54748">#54748</a>)</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="8d37ed035c"><img src="https://img.shields.io/badge/8d37ed035c-fix-green" alt="fix - 8d37ed035c" /></a></td>
<td>exclude caching for authenticated HTTP requests (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02"><img src="https://img.shields.io/badge/c1c7384e02-feat-blue" alt="feat - c1c7384e02" /></a></td>
<td>Add reusable types for router guards (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311"><img src="https://img.shields.io/badge/7225485311-fix-green" alt="fix - 7225485311" /></a></td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<h2>v17.3.0-rc.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0-rc.0 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="ae7dbe42de"><img src="https://img.shields.io/badge/ae7dbe42de-fix-green" alt="fix - ae7dbe42de" /></a></td>
<td>unwrap expressions with type parameters in query read property (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54647">#54647</a>)</td>
</tr>
</tbody>
</table>
<h3>core</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"><code>@​angular/compiler</code>'s changelog</a>.</em></p>
<blockquote>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2">1a6beae8a2</a></td>
<td>feat</td>
<td>Enable template pipeline by default. (<a href="https://redirect.github.com/angular/angular/pull/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d">f386a04c9d</a></td>
<td>fix</td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e">1f129f114e</a></td>
<td>fix</td>
<td>not catching for loop empty tracking expressions (<a href="https://redirect.github.com/angular/angular/pull/54772">#54772</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="12dc4d074e">12dc4d074e</a></td>
<td>fix</td>
<td>account for as expression in docs extraction (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0">da7fbb40f0</a></td>
<td>fix</td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://redirect.github.com/angular/angular/pull/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699">492e03f699</a></td>
<td>fix</td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://redirect.github.com/angular/angular/pull/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1">5afa4f0ec1</a></td>
<td>fix</td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</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="331b16efd2">331b16efd2</a></td>
<td>feat</td>
<td>add API to inject attributes on the host node (<a href="https://redirect.github.com/angular/angular/pull/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a">fb540e169a</a></td>
<td>feat</td>
<td>add migration for invalid two-way bindings (<a href="https://redirect.github.com/angular/angular/pull/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453">c687b8f453</a></td>
<td>feat</td>
<td>expose new <code>output()</code> API (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21">c809069f21</a></td>
<td>feat</td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4">aff65fd1f4</a></td>
<td>feat</td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://redirect.github.com/angular/angular/pull/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c">974958913c</a></td>
<td>feat</td>
<td>support TypeScript 5.4 (<a href="https://redirect.github.com/angular/angular/pull/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d">39a50f9a8d</a></td>
<td>fix</td>
<td>ensure all initializer functions run in an injection context (<a href="https://redirect.github.com/angular/angular/pull/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624">243ccce624</a></td>
<td>fix</td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://redirect.github.com/angular/angular/pull/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="2909e9817d">2909e9817d</a></td>
<td>fix</td>
<td>prevent infinite loops in clobbered elements check (<a href="https://redirect.github.com/angular/angular/pull/54425">#54425</a>)</td>
</tr>
<tr>
<td><a href="7243c704cf">7243c704cf</a></td>
<td>fix</td>
<td>return a readonly signal on <code>asReadonly</code>. (<a href="https://redirect.github.com/angular/angular/pull/54706">#54706</a>)</td>
</tr>
<tr>
<td><a href="bb35414a38">bb35414a38</a></td>
<td>perf</td>
<td>speed up retrieval of <code>DestroyRef</code> in <code>EventEmitter</code> (<a href="https://redirect.github.com/angular/angular/pull/54748">#54748</a>)</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="8d37ed035c">8d37ed035c</a></td>
<td>fix</td>
<td>exclude caching for authenticated HTTP requests (<a href="https://redirect.github.com/angular/angular/pull/54746">#54746</a>)</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c1c7384e02">c1c7384e02</a></td>
<td>feat</td>
<td>Add reusable types for router guards (<a href="https://redirect.github.com/angular/angular/pull/54580">#54580</a>)</td>
</tr>
<tr>
<td><a href="7225485311">7225485311</a></td>
<td>fix</td>
<td>Navigations triggered by cancellation events should cancel previous navigation (<a href="https://redirect.github.com/angular/angular/pull/54710">#54710</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.2.4 (2024-03-06)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="917b9bdd2e">917b9bdd2e</a></td>
<td>fix</td>
<td>unwrap expressions with type parameters in query read property (<a href="https://redirect.github.com/angular/angular/pull/54647">#54647</a>)</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="586cc24a10">586cc24a10</a></td>
<td>fix</td>
<td>apply TestBed provider overrides to <code>@defer</code> dependencies (<a href="https://redirect.github.com/angular/angular/pull/54667">#54667</a>)</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f386a04c9d"><code>f386a04</code></a> fix(compiler): handle two-way bindings to signal-based template variables in ...</li>
<li><a href="1f129f114e"><code>1f129f1</code></a> fix(compiler): not catching for loop empty tracking expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54772">#54772</a>)</li>
<li><a href="b40f1e5b86"><code>b40f1e5</code></a> refactor(compiler): Remove deep imports in the language service (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54695">#54695</a>)</li>
<li><a href="5e32a775d9"><code>5e32a77</code></a> refactor(compiler): cleanup unused code in template builder pipeline (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54654">#54654</a>)</li>
<li><a href="1a6beae8a2"><code>1a6beae</code></a> feat(compiler): Enable template pipeline by default. (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54571">#54571</a>)</li>
<li><a href="badda0c389"><code>badda0c</code></a> fix(compiler-cli): correctly detect deferred dependencies across scoped nodes...</li>
<li><a href="dba3e0b5aa"><code>dba3e0b</code></a> fix(compiler): adding the inert property to the &quot;SCHEMA&quot; array (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/53148">#53148</a>)</li>
<li><a href="6c2d4b650b"><code>6c2d4b6</code></a> refactor(compiler): Enable Template Pipeline globally in 1P. (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/54435">#54435</a>)</li>
<li>See full diff in <a href="https://github.com/angular/angular/commits/17.3.0/packages/compiler">compare view</a></li>
</ul>
</details>
<br />

Updates `@angular/core` from 17.2.1 to 17.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@​angular/core</code>'s releases</a>.</em></p>
<blockquote>
<h2>v17.3.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>17.3.0 (2024-03-13)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1a6beae8a2"><img src="https://img.shields.io/badge/1a6beae8a2-feat-blue" alt="feat - 1a6beae8a2" /></a></td>
<td>Enable template pipeline by default. (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54571">#54571</a>)</td>
</tr>
<tr>
<td><a href="f386a04c9d"><img src="https://img.shields.io/badge/f386a04c9d-fix-green" alt="fix - f386a04c9d" /></a></td>
<td>handle two-way bindings to signal-based template variables in instruction generation (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="1f129f114e"><img src="https://img.shields.io/badge/1f129f114e-fix-green" alt="fix - 1f129f114e" /></a></td>
<td>not catching for loop empty tracking expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54772">#54772</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="12dc4d074e"><img src="https://img.shields.io/badge/12dc4d074e-fix-green" alt="fix - 12dc4d074e" /></a></td>
<td>account for as expression in docs extraction (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="da7fbb40f0"><img src="https://img.shields.io/badge/da7fbb40f0-fix-green" alt="fix - da7fbb40f0" /></a></td>
<td>detect when the linker is working in unpublished angular and widen supported versions (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54439">#54439</a>)</td>
</tr>
<tr>
<td><a href="492e03f699"><img src="https://img.shields.io/badge/492e03f699-fix-green" alt="fix - 492e03f699" /></a></td>
<td>flag two-way bindings to non-signal values in templates (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54714">#54714</a>)</td>
</tr>
<tr>
<td><a href="5afa4f0ec1"><img src="https://img.shields.io/badge/5afa4f0ec1-fix-green" alt="fix - 5afa4f0ec1" /></a></td>
<td>support <code>ModuleWithProviders</code> literal detection with <code>typeof</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54650">#54650</a>)</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="331b16efd2"><img src="https://img.shields.io/badge/331b16efd2-feat-blue" alt="feat - 331b16efd2" /></a></td>
<td>add API to inject attributes on the host node (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54604">#54604</a>)</td>
</tr>
<tr>
<td><a href="fb540e169a"><img src="https://img.shields.io/badge/fb540e169a-feat-blue" alt="feat - fb540e169a" /></a></td>
<td>add migration for invalid two-way bindings (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54630">#54630</a>)</td>
</tr>
<tr>
<td><a href="c687b8f453"><img src="https://img.shields.io/badge/c687b8f453-feat-blue" alt="feat - c687b8f453" /></a></td>
<td>expose new <code>output()</code> API (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="c809069f21"><img src="https://img.shields.io/badge/c809069f21-feat-blue" alt="feat - c809069f21" /></a></td>
<td>introduce <code>outputFromObservable()</code> interop function (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="aff65fd1f4"><img src="https://img.shields.io/badge/aff65fd1f4-feat-blue" alt="feat - aff65fd1f4" /></a></td>
<td>introduce <code>outputToObservable</code> interop helper (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54650">#54650</a>)</td>
</tr>
<tr>
<td><a href="974958913c"><img src="https://img.shields.io/badge/974958913c-feat-blue" alt="feat - 974958913c" /></a></td>
<td>support TypeScript 5.4 (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54414">#54414</a>)</td>
</tr>
<tr>
<td><a href="39a50f9a8d"><img src="https://img.shields.io/badge/39a50f9a8d-fix-green" alt="fix - 39a50f9a8d" /></a></td>
<td>ensure all initializer functions run in an injection context (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54761">#54761</a>)</td>
</tr>
<tr>
<td><a href="243ccce624"><img src="https://img.shields.io/badge/243ccce624-fix-green" alt="fix - 243ccce624" /></a></td>
<td>exclude class attribute intended for projection matching from directive matching (<a href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/54800">#54800</a>)</td>
</tr>
<tr>
<td><a href="https://github.com/angular/angular/commit/2909e9817daf69b6478...

_Description has been truncated_
2024-03-14 21:05:24 +00:00
..

AngularV17

This project was generated with Angular CLI version 17.0.7.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.