Bumps [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) from 20.3.16 to 21.1.1.
<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>21.1.1</h2>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="0e1f1ed573"><img src="https://img.shields.io/badge/0e1f1ed573-fix-green" alt="fix - 0e1f1ed573" /></a></td>
<td>drop .tsx extension for generated relative imports</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="05adfcf8f2"><img src="https://img.shields.io/badge/05adfcf8f2-fix-green" alt="fix - 05adfcf8f2" /></a></td>
<td>handle Set in class bindings</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d89a80a970"><img src="https://img.shields.io/badge/d89a80a970-feat-blue" alt="feat - d89a80a970" /></a></td>
<td>Ability to manually register a form field binding in signal forms</td>
</tr>
<tr>
<td><a href="cb75f9ce85"><img src="https://img.shields.io/badge/cb75f9ce85-fix-green" alt="fix - cb75f9ce85" /></a></td>
<td>fix control value syncing on touch</td>
</tr>
</tbody>
</table>
<h2>VSCode Extension: 21.1.1</h2>
<ul>
<li>fix(vscode-extension): add syntax highlighting for arrow functions (<a href="a649fc8f57">a649fc8f57</a>)</li>
<li>fix(vscode-extension): add syntax highlighting for spread/rest expressions (<a href="8f16846dd9">8f16846dd9</a>)</li>
</ul>
<h2>VSCode Extension: 21.1.0</h2>
<h2>21.1.0 (2026-01-12)</h2>
<ul>
<li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li>
</ul>
<h2>21.1.0</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td>
<td>support custom transformations in ImageKit and Imgix loaders</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td>
<td>Support empty cases</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<p>| Commit | Description |</p>
</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>21.1.1 (2026-01-21)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="0e1f1ed573">0e1f1ed573</a></td>
<td>fix</td>
<td>drop .tsx extension for generated relative imports</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="05adfcf8f2">05adfcf8f2</a></td>
<td>fix</td>
<td>handle Set in class bindings</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="d89a80a970">d89a80a970</a></td>
<td>feat</td>
<td>Ability to manually register a form field binding in signal forms</td>
</tr>
<tr>
<td><a href="cb75f9ce85">cb75f9ce85</a></td>
<td>fix</td>
<td>fix control value syncing on touch</td>
</tr>
</tbody>
</table>
<h1>21.1.0 (2026-01-14)</h1>
<h2>Deprecations</h2>
<h3>upgrade</h3>
<ul>
<li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li>
</ul>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be">d8790972be</a></td>
<td>feat</td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af">a6b8cb68af</a></td>
<td>feat</td>
<td>support custom transformations in ImageKit and Imgix loaders</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="640693da8e">640693da8e</a></td>
<td>feat</td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6">0ad3adc7c6</a></td>
<td>fix</td>
<td>Support empty cases</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="99ad18a4ee">99ad18a4ee</a></td>
<td>feat</td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86">a0dfa5fa86</a></td>
<td>feat</td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9">6e18fa8bc9</a></td>
<td>feat</td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5">e407280ab5</a></td>
<td>feat</td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb">06be8034bb</a></td>
<td>fix</td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42">b4f584cf42</a></td>
<td>fix</td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></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="1ea5c97703">1ea5c97703</a></td>
<td>feat</td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee">ec9dc94cee</a></td>
<td>feat</td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e">ab67988d2e</a></td>
<td>feat</td>
<td>resolve JIT resources in <code>createApplication</code></td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="abb179466d"><code>abb1794</code></a> refactor(core): mark VERSION exports as pure for better tree-shaking</li>
<li><a href="26fed34e0e"><code>26fed34</code></a> build: format md files</li>
<li><a href="b9e2ccdda8"><code>b9e2ccd</code></a> refactor(common): remove unused import (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64699">#64699</a>)</li>
<li><a href="70332b0453"><code>70332b0</code></a> fix(core): pass element removal property through in all locations (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64565">#64565</a>)</li>
<li><a href="2b257b3659"><code>2b257b3</code></a> fix(animations): account for <code>Element.animate</code> exceptions (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/64506">#64506</a>)</li>
<li><a href="dde5badb71"><code>dde5bad</code></a> fix(core): prevent animations renderer from impacting <code>animate.leave</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63921">#63921</a>)</li>
<li><a href="c3576506b3"><code>c357650</code></a> refactor(core): Update tests for zoneless by default (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63668">#63668</a>)</li>
<li><a href="021ead5399"><code>021ead5</code></a> refactor(animations): remove dependency on <code>@angular/common</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63248">#63248</a>)</li>
<li><a href="2fcafb65c5"><code>2fcafb6</code></a> build: rename defaults2.bzl to defaults.bzl (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/63383">#63383</a>)</li>
<li>See full diff in <a href="https://github.com/angular/angular/commits/v21.1.1/packages/animations">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) from 20.3.16 to 21.1.1.
<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>21.1.1</h2>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="0e1f1ed573"><img src="https://img.shields.io/badge/0e1f1ed573-fix-green" alt="fix - 0e1f1ed573" /></a></td>
<td>drop .tsx extension for generated relative imports</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="05adfcf8f2"><img src="https://img.shields.io/badge/05adfcf8f2-fix-green" alt="fix - 05adfcf8f2" /></a></td>
<td>handle Set in class bindings</td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d89a80a970"><img src="https://img.shields.io/badge/d89a80a970-feat-blue" alt="feat - d89a80a970" /></a></td>
<td>Ability to manually register a form field binding in signal forms</td>
</tr>
<tr>
<td><a href="cb75f9ce85"><img src="https://img.shields.io/badge/cb75f9ce85-fix-green" alt="fix - cb75f9ce85" /></a></td>
<td>fix control value syncing on touch</td>
</tr>
</tbody>
</table>
<h2>VSCode Extension: 21.1.1</h2>
<ul>
<li>fix(vscode-extension): add syntax highlighting for arrow functions (<a href="a649fc8f57">a649fc8f57</a>)</li>
<li>fix(vscode-extension): add syntax highlighting for spread/rest expressions (<a href="8f16846dd9">8f16846dd9</a>)</li>
</ul>
<h2>VSCode Extension: 21.1.0</h2>
<h2>21.1.0 (2026-01-12)</h2>
<ul>
<li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li>
</ul>
<h2>21.1.0</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td>
<td>support custom transformations in ImageKit and Imgix loaders</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td>
<td>Support empty cases</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<p>| Commit | Description |</p>
</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>21.1.1 (2026-01-21)</h1>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="0e1f1ed573">0e1f1ed573</a></td>
<td>fix</td>
<td>drop .tsx extension for generated relative imports</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="05adfcf8f2">05adfcf8f2</a></td>
<td>fix</td>
<td>handle Set in class bindings</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="d89a80a970">d89a80a970</a></td>
<td>feat</td>
<td>Ability to manually register a form field binding in signal forms</td>
</tr>
<tr>
<td><a href="cb75f9ce85">cb75f9ce85</a></td>
<td>fix</td>
<td>fix control value syncing on touch</td>
</tr>
</tbody>
</table>
<h1>21.1.0 (2026-01-14)</h1>
<h2>Deprecations</h2>
<h3>upgrade</h3>
<ul>
<li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li>
</ul>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be">d8790972be</a></td>
<td>feat</td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af">a6b8cb68af</a></td>
<td>feat</td>
<td>support custom transformations in ImageKit and Imgix loaders</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="640693da8e">640693da8e</a></td>
<td>feat</td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6">0ad3adc7c6</a></td>
<td>fix</td>
<td>Support empty cases</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="99ad18a4ee">99ad18a4ee</a></td>
<td>feat</td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86">a0dfa5fa86</a></td>
<td>feat</td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9">6e18fa8bc9</a></td>
<td>feat</td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5">e407280ab5</a></td>
<td>feat</td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb">06be8034bb</a></td>
<td>fix</td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42">b4f584cf42</a></td>
<td>fix</td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></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="1ea5c97703">1ea5c97703</a></td>
<td>feat</td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee">ec9dc94cee</a></td>
<td>feat</td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e">ab67988d2e</a></td>
<td>feat</td>
<td>resolve JIT resources in <code>createApplication</code></td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3954dc278b"><code>3954dc2</code></a> refactor(http): remove redundant providedIn: 'root' in XSRF_HEADER_NAME</li>
<li><a href="03e2b36826"><code>03e2b36</code></a> refactor(core): update error message links to versioned docs (<a href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/66374">#66374</a>)</li>
<li><a href="74af7d85e5"><code>74af7d8</code></a> refactor(core): Use the provided Document value rather than global in FakeNav...</li>
<li><a href="a2b9429992"><code>a2b9429</code></a> Revert "feat(router): add trailingSlash config option"</li>
<li><a href="12fccc5e99"><code>12fccc5</code></a> feat(router): add trailingSlash config option</li>
<li><a href="3dfdb71d65"><code>3dfdb71</code></a> docs: add docs for transform property in built-in loaders</li>
<li><a href="dd58c4b667"><code>dd58c4b</code></a> refactor(common): Add token to indicate whether precommit handler is supported</li>
<li><a href="a6b8cb68af"><code>a6b8cb6</code></a> feat(common): support custom transformations in ImageKit and Imgix loaders</li>
<li><a href="d8790972be"><code>d879097</code></a> feat(common): Add custom transformations for Cloudflare and Cloudinary image ...</li>
<li><a href="6270bba056"><code>6270bba</code></a> ci: reformat files</li>
<li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/v21.1.1/packages/common">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 5.1.15 to 6.0.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) from 20.3.16 to 21.1.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>VSCode Extension: 21.1.0</h2>
<h2>21.1.0 (2026-01-12)</h2>
<ul>
<li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li>
</ul>
<h2>21.1.0</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td>
<td>support custom transformations in ImageKit and Imgix loaders</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td>
<td>Support empty cases</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee"><img src="https://img.shields.io/badge/ec9dc94cee-feat-blue" alt="feat - ec9dc94cee" /></a></td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e"><img src="https://img.shields.io/badge/ab67988d2e-feat-blue" alt="feat - ab67988d2e" /></a></td>
<td>resolve JIT resources in <code>createApplication</code></td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5edceffd04"><img src="https://img.shields.io/badge/5edceffd04-feat-blue" alt="feat - 5edceffd04" /></a></td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d"><img src="https://img.shields.io/badge/a03c82564d-feat-blue" alt="feat - a03c82564d" /></a></td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016"><img src="https://img.shields.io/badge/e44839b016-feat-blue" alt="feat - e44839b016" /></a></td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85"><img src="https://img.shields.io/badge/c25d749d85-feat-blue" alt="feat - c25d749d85" /></a></td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8"><img src="https://img.shields.io/badge/1c00ab42f8-feat-blue" alt="feat - 1c00ab42f8" /></a></td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241"><img src="https://img.shields.io/badge/7003e8d241-feat-blue" alt="feat - 7003e8d241" /></a></td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778"><img src="https://img.shields.io/badge/c84d372778-feat-blue" alt="feat - c84d372778" /></a></td>
<td>Support wildcard params with segments trailing (<a href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9"><img src="https://img.shields.io/badge/75fe8f8af9-refactor-yellow" alt="refactor - 75fe8f8af9" /></a></td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
<h2>Deprecations</h2>
<h3>upgrade</h3>
</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>21.1.0 (2026-01-14)</h1>
<h2>Deprecations</h2>
<h3>upgrade</h3>
<ul>
<li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li>
</ul>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be">d8790972be</a></td>
<td>feat</td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af">a6b8cb68af</a></td>
<td>feat</td>
<td>support custom transformations in ImageKit and Imgix loaders</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="640693da8e">640693da8e</a></td>
<td>feat</td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6">0ad3adc7c6</a></td>
<td>fix</td>
<td>Support empty cases</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="99ad18a4ee">99ad18a4ee</a></td>
<td>feat</td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86">a0dfa5fa86</a></td>
<td>feat</td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9">6e18fa8bc9</a></td>
<td>feat</td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5">e407280ab5</a></td>
<td>feat</td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb">06be8034bb</a></td>
<td>fix</td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42">b4f584cf42</a></td>
<td>fix</td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></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="1ea5c97703">1ea5c97703</a></td>
<td>feat</td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee">ec9dc94cee</a></td>
<td>feat</td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e">ab67988d2e</a></td>
<td>feat</td>
<td>resolve JIT resources in <code>createApplication</code></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="5edceffd04">5edceffd04</a></td>
<td>feat</td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d">a03c82564d</a></td>
<td>feat</td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016">e44839b016</a></td>
<td>feat</td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85">c25d749d85</a></td>
<td>feat</td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8">1c00ab42f8</a></td>
<td>feat</td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241">7003e8d241</a></td>
<td>feat</td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778">c84d372778</a></td>
<td>feat</td>
<td>Support wildcard params with segments trailing (<a href="https://redirect.github.com/angular/angular/pull/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9">75fe8f8af9</a></td>
<td>refactor</td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="532633301b"><code>5326333</code></a> fix(forms): Ensure the control instruction comes after the other bindings</li>
<li><a href="29f074a93f"><code>29f074a</code></a> fix(forms): Rename signal form [field] to [formField]</li>
<li><a href="0875deab8d"><code>0875dea</code></a> refactor(compiler): switch <code>Binary.isAssignmentOperation</code> to type guard function</li>
<li><a href="83bac5adc9"><code>83bac5a</code></a> refactor(compiler): tighten <code>Unary.operator</code> type</li>
<li><a href="e01dcae4c5"><code>e01dcae</code></a> refactor: <code>_ParseAST.isAssignmentOperator</code> to type guard</li>
<li><a href="4cdf4d5760"><code>4cdf4d5</code></a> refactor(compiler): tighten <code>Binary.operation</code> type</li>
<li><a href="0ad3adc7c6"><code>0ad3adc</code></a> fix(compiler): Support empty cases</li>
<li><a href="4dc5ae54a9"><code>4dc5ae5</code></a> refactor(core): remove unused instruction parameter</li>
<li><a href="3a56c1367f"><code>3a56c13</code></a> fix(compiler): produce accurate span for typeof and void expressions</li>
<li><a href="a0dfa5fa86"><code>a0dfa5f</code></a> feat(core): support rest arguments in function calls</li>
<li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/v21.1.0/packages/compiler">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) from 20.3.16 to 21.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@angular/forms</code>'s releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 21.1.0</h2>
<h2>21.1.0 (2026-01-12)</h2>
<ul>
<li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li>
</ul>
<h2>21.1.0</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td>
<td>support custom transformations in ImageKit and Imgix loaders</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td>
<td>Support empty cases</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee"><img src="https://img.shields.io/badge/ec9dc94cee-feat-blue" alt="feat - ec9dc94cee" /></a></td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e"><img src="https://img.shields.io/badge/ab67988d2e-feat-blue" alt="feat - ab67988d2e" /></a></td>
<td>resolve JIT resources in <code>createApplication</code></td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5edceffd04"><img src="https://img.shields.io/badge/5edceffd04-feat-blue" alt="feat - 5edceffd04" /></a></td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d"><img src="https://img.shields.io/badge/a03c82564d-feat-blue" alt="feat - a03c82564d" /></a></td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016"><img src="https://img.shields.io/badge/e44839b016-feat-blue" alt="feat - e44839b016" /></a></td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85"><img src="https://img.shields.io/badge/c25d749d85-feat-blue" alt="feat - c25d749d85" /></a></td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8"><img src="https://img.shields.io/badge/1c00ab42f8-feat-blue" alt="feat - 1c00ab42f8" /></a></td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241"><img src="https://img.shields.io/badge/7003e8d241-feat-blue" alt="feat - 7003e8d241" /></a></td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778"><img src="https://img.shields.io/badge/c84d372778-feat-blue" alt="feat - c84d372778" /></a></td>
<td>Support wildcard params with segments trailing (<a href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9"><img src="https://img.shields.io/badge/75fe8f8af9-refactor-yellow" alt="refactor - 75fe8f8af9" /></a></td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
<h2>Deprecations</h2>
<h3>upgrade</h3>
</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/forms</code>'s changelog</a>.</em></p>
<blockquote>
<h1>21.1.0 (2026-01-14)</h1>
<h2>Deprecations</h2>
<h3>upgrade</h3>
<ul>
<li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li>
</ul>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be">d8790972be</a></td>
<td>feat</td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af">a6b8cb68af</a></td>
<td>feat</td>
<td>support custom transformations in ImageKit and Imgix loaders</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="640693da8e">640693da8e</a></td>
<td>feat</td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6">0ad3adc7c6</a></td>
<td>fix</td>
<td>Support empty cases</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="99ad18a4ee">99ad18a4ee</a></td>
<td>feat</td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86">a0dfa5fa86</a></td>
<td>feat</td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9">6e18fa8bc9</a></td>
<td>feat</td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5">e407280ab5</a></td>
<td>feat</td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb">06be8034bb</a></td>
<td>fix</td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42">b4f584cf42</a></td>
<td>fix</td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></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="1ea5c97703">1ea5c97703</a></td>
<td>feat</td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee">ec9dc94cee</a></td>
<td>feat</td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e">ab67988d2e</a></td>
<td>feat</td>
<td>resolve JIT resources in <code>createApplication</code></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="5edceffd04">5edceffd04</a></td>
<td>feat</td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d">a03c82564d</a></td>
<td>feat</td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016">e44839b016</a></td>
<td>feat</td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85">c25d749d85</a></td>
<td>feat</td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8">1c00ab42f8</a></td>
<td>feat</td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241">7003e8d241</a></td>
<td>feat</td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778">c84d372778</a></td>
<td>feat</td>
<td>Support wildcard params with segments trailing (<a href="https://redirect.github.com/angular/angular/pull/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9">75fe8f8af9</a></td>
<td>refactor</td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1ea5c97703"><code>1ea5c97</code></a> feat(forms): allow focusing bound control from field state</li>
<li><a href="532633301b"><code>5326333</code></a> fix(forms): Ensure the control instruction comes after the other bindings</li>
<li><a href="8474277b49"><code>8474277</code></a> test(forms): improve test coverage for multiple pattern validators</li>
<li><a href="5ad2e1bae0"><code>5ad2e1b</code></a> docs: replace old <a href="https://angular.io/license">https://angular.io/license</a> with <a href="https://angular.dev/license">https://angular.dev/license</a></li>
<li><a href="03e2b36826"><code>03e2b36</code></a> refactor(core): update error message links to versioned docs (<a href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/66374">#66374</a>)</li>
<li><a href="29f074a93f"><code>29f074a</code></a> fix(forms): Rename signal form [field] to [formField]</li>
<li><a href="0c23d02944"><code>0c23d02</code></a> docs(forms): Clarify returning errors from submit functions</li>
<li><a href="46dbd18566"><code>46dbd18</code></a> refactor(forms): remove <code>customError()</code></li>
<li><a href="b2f417585a"><code>b2f4175</code></a> docs: update angular.io links to angular.dev in comments, TSDoc, and warnings</li>
<li><a href="e7d99f02cb"><code>e7d99f0</code></a> fix(forms): clean up abort listener after timeout</li>
<li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/v21.1.0/packages/forms">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) from 20.3.16 to 21.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@angular/router</code>'s releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 21.1.0</h2>
<h2>21.1.0 (2026-01-12)</h2>
<ul>
<li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li>
</ul>
<h2>21.1.0</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td>
<td>support custom transformations in ImageKit and Imgix loaders</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td>
<td>Support empty cases</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td>
</tr>
</tbody>
</table>
<h3>forms</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee"><img src="https://img.shields.io/badge/ec9dc94cee-feat-blue" alt="feat - ec9dc94cee" /></a></td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e"><img src="https://img.shields.io/badge/ab67988d2e-feat-blue" alt="feat - ab67988d2e" /></a></td>
<td>resolve JIT resources in <code>createApplication</code></td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="5edceffd04"><img src="https://img.shields.io/badge/5edceffd04-feat-blue" alt="feat - 5edceffd04" /></a></td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d"><img src="https://img.shields.io/badge/a03c82564d-feat-blue" alt="feat - a03c82564d" /></a></td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016"><img src="https://img.shields.io/badge/e44839b016-feat-blue" alt="feat - e44839b016" /></a></td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85"><img src="https://img.shields.io/badge/c25d749d85-feat-blue" alt="feat - c25d749d85" /></a></td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8"><img src="https://img.shields.io/badge/1c00ab42f8-feat-blue" alt="feat - 1c00ab42f8" /></a></td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241"><img src="https://img.shields.io/badge/7003e8d241-feat-blue" alt="feat - 7003e8d241" /></a></td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778"><img src="https://img.shields.io/badge/c84d372778-feat-blue" alt="feat - c84d372778" /></a></td>
<td>Support wildcard params with segments trailing (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9"><img src="https://img.shields.io/badge/75fe8f8af9-refactor-yellow" alt="refactor - 75fe8f8af9" /></a></td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
<h2>Deprecations</h2>
<h3>upgrade</h3>
</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/router</code>'s changelog</a>.</em></p>
<blockquote>
<h1>21.1.0 (2026-01-14)</h1>
<h2>Deprecations</h2>
<h3>upgrade</h3>
<ul>
<li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li>
</ul>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="d8790972be">d8790972be</a></td>
<td>feat</td>
<td>Add custom transformations for Cloudflare and Cloudinary image loaders</td>
</tr>
<tr>
<td><a href="a6b8cb68af">a6b8cb68af</a></td>
<td>feat</td>
<td>support custom transformations in ImageKit and Imgix loaders</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="640693da8e">640693da8e</a></td>
<td>feat</td>
<td>Add support for multiple swich cases matching</td>
</tr>
<tr>
<td><a href="0ad3adc7c6">0ad3adc7c6</a></td>
<td>fix</td>
<td>Support empty cases</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="99ad18a4ee">99ad18a4ee</a></td>
<td>feat</td>
<td>Add stability debugging utility</td>
</tr>
<tr>
<td><a href="a0dfa5fa86">a0dfa5fa86</a></td>
<td>feat</td>
<td>support rest arguments in function calls</td>
</tr>
<tr>
<td><a href="6e18fa8bc9">6e18fa8bc9</a></td>
<td>feat</td>
<td>support spread elements in array literals</td>
</tr>
<tr>
<td><a href="e407280ab5">e407280ab5</a></td>
<td>feat</td>
<td>support spread expressions in object literals</td>
</tr>
<tr>
<td><a href="06be8034bb">06be8034bb</a></td>
<td>fix</td>
<td>Microtask scheduling should be used after any application synchronization</td>
</tr>
<tr>
<td><a href="b4f584cf42">b4f584cf42</a></td>
<td>fix</td>
<td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></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="1ea5c97703">1ea5c97703</a></td>
<td>feat</td>
<td>allow focusing bound control from field state</td>
</tr>
</tbody>
</table>
<h3>platform-browser</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="ec9dc94cee">ec9dc94cee</a></td>
<td>feat</td>
<td>add <code>context</code> to <code>createApplication</code></td>
</tr>
<tr>
<td><a href="ab67988d2e">ab67988d2e</a></td>
<td>feat</td>
<td>resolve JIT resources in <code>createApplication</code></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="5edceffd04">5edceffd04</a></td>
<td>feat</td>
<td>add controls for route cleanup</td>
</tr>
<tr>
<td><a href="a03c82564d">a03c82564d</a></td>
<td>feat</td>
<td>Add scroll behavior controls on router navigation</td>
</tr>
<tr>
<td><a href="e44839b016">e44839b016</a></td>
<td>feat</td>
<td>Add standalone function to create a comptued for isActive</td>
</tr>
<tr>
<td><a href="c25d749d85">c25d749d85</a></td>
<td>feat</td>
<td>Execute RunGuardsAndResolvers function in injection context</td>
</tr>
<tr>
<td><a href="1c00ab42f8">1c00ab42f8</a></td>
<td>feat</td>
<td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td>
</tr>
<tr>
<td><a href="7003e8d241">7003e8d241</a></td>
<td>feat</td>
<td>Publish Router's integration with platform Navigation API as experimental</td>
</tr>
<tr>
<td><a href="c84d372778">c84d372778</a></td>
<td>feat</td>
<td>Support wildcard params with segments trailing (<a href="https://redirect.github.com/angular/angular/pull/64737">#64737</a>)</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="75fe8f8af9">75fe8f8af9</a></td>
<td>refactor</td>
<td>deprecate <code>VERSION</code> export</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b1c68e66a7"><code>b1c68e6</code></a> docs: update examples to use <code>isActive</code> instead of deprecated `Router.isActiv...</li>
<li><a href="a2b9429992"><code>a2b9429</code></a> Revert "feat(router): add trailingSlash config option"</li>
<li><a href="12fccc5e99"><code>12fccc5</code></a> feat(router): add trailingSlash config option</li>
<li><a href="7003e8d241"><code>7003e8d</code></a> feat(router): Publish Router's integration with platform Navigation API as ex...</li>
<li><a href="9e043decaf"><code>9e043de</code></a> fix(router): handle errors from view transition <code>updateCallbackDone</code> promise</li>
<li><a href="bcef77d950"><code>bcef77d</code></a> fix(router): Fix RouterLink href not updating with <code>queryParamsHandling</code></li>
<li><a href="1c00ab42f8"><code>1c00ab4</code></a> feat(router): extend paramters of RedirectFunction to include paramMap and qu...</li>
<li><a href="97fd1de0ac"><code>97fd1de</code></a> Revert "refactor(router): Add support for precommitHandler in Navigation inte...</li>
<li><a href="397dbc4c37"><code>397dbc4</code></a> Revert "refactor(router): Retain original navigateEvent across redirects"</li>
<li><a href="e44839b016"><code>e44839b</code></a> feat(router): Add standalone function to create a comptued for isActive</li>
<li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/v21.1.0/packages/router">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
The android_view add_to_app sample is currently broken. It does not build:
* AGP version is incompatible.
* MIN_SDK is below Flutter min
* Flutter plugin module was renamed awhile ago: https://github.com/flutter/samples/pull/2714
Removed an accidental project i pushed 😬
also fixed the bash commands in the readme
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
This PR makes samples pass CI when 3.10 is released.
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
Removes VeggieSeaons
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
---------
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
I got carried away with Gemini and basically rewrote CI and the release
process for the new LLM reality. This work was largely completed by
Gemini.
- Bump all SDK versions to the current beta (3.9.0-0)
- Run `flutter channel beta`
- Wrote `ci_script.dart` to replace the bash scripts
- Converted repository to pub workspace #2499
- Added llm.md and release.md
- Added redirect for deprecated Samples Index
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
Per #2565, this tip doesn't actually work anymore, so I'm removing it
from the README
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [pigeon](https://github.com/flutter/packages/tree/main/packages) from 25.5.0 to 26.0.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="f0a66f1fb7"><code>f0a66f1</code></a> [pigeon] Adds overrides for constructors and static members of ProxyApis (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9515">#9515</a>)</li>
<li><a href="cb8fef6299"><code>cb8fef6</code></a> [dependabot]: Bump androidx.activity:activity from 1.9.3 to 1.10.1 in /packag...</li>
<li><a href="dedd2f0d5e"><code>dedd2f0</code></a> [webview_flutter] Update androidx.webkit to 1.14.0 (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9638">#9638</a>)</li>
<li><a href="2496670aa5"><code>2496670</code></a> [dependabot]: Bump com.google.android.gms:play-services-maps from 18.2.0 to 1...</li>
<li><a href="85daf43681"><code>85daf43</code></a> [dependabot]: Bump androidx.fragment:fragment from 1.6.2 to 1.8.8 in /package...</li>
<li><a href="f19ecddeea"><code>f19ecdd</code></a> [image_picker] redesign example app (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9625">#9625</a>)</li>
<li><a href="e2c722215a"><code>e2c7222</code></a> [camera_avfoundation] Implementation swift migration - part 7 (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9595">#9595</a>)</li>
<li><a href="12fad6d68d"><code>12fad6d</code></a> [webview_flutter_wkwebview] Replace Flutter method failure assertion with nsl...</li>
<li><a href="1dc479bc08"><code>1dc479b</code></a> [webview_flutter] Add setMixedContentMode for Android (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9586">#9586</a>)</li>
<li><a href="2b0ecd2eba"><code>2b0ecd2</code></a> [google_sign_in] Add exception info to migration guide (<a href="https://github.com/flutter/packages/tree/main/packages/issues/9574">#9574</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/flutter/packages/commits/pigeon-v26.0.0/packages">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 19.0.7 to 20.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular-cli/releases"><code>@angular/cli</code>'s releases</a>.</em></p>
<blockquote>
<h2>20.1.0</h2>
<h3><code>@schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1c19e0dcd4"><img src="https://img.shields.io/badge/1c19e0dcd-feat-blue" alt="feat - 1c19e0dcd" /></a></td>
<td>use signal in app component</td>
</tr>
</tbody>
</table>
<h3><code>@angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="dc45c186ec"><img src="https://img.shields.io/badge/dc45c186e-feat-blue" alt="feat - dc45c186e" /></a></td>
<td>add initial MCP server implementation</td>
</tr>
</tbody>
</table>
<h3><code>@angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="49a09737d5"><img src="https://img.shields.io/badge/49a09737d-feat-blue" alt="feat - 49a09737d" /></a></td>
<td>provide partial custom postcss configuration support</td>
</tr>
</tbody>
</table>
<h3><code>@angular/build</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1159cf0810"><img src="https://img.shields.io/badge/1159cf081-feat-blue" alt="feat - 1159cf081" /></a></td>
<td>add code coverage reporters option for unit-test</td>
</tr>
<tr>
<td><a href="8f305ef0ba"><img src="https://img.shields.io/badge/8f305ef0b-feat-blue" alt="feat - 8f305ef0b" /></a></td>
<td>add dataurl, base64 loaders</td>
</tr>
<tr>
<td><a href="adfeee0a4c"><img src="https://img.shields.io/badge/adfeee0a4-fix-green" alt="fix - adfeee0a4" /></a></td>
<td>adjust coverage includes/excludes for unit-test vitest runner</td>
</tr>
<tr>
<td><a href="c19cd2985c"><img src="https://img.shields.io/badge/c19cd2985-fix-green" alt="fix - c19cd2985" /></a></td>
<td>coverage reporter option</td>
</tr>
<tr>
<td><a href="8879716cac"><img src="https://img.shields.io/badge/8879716ca-fix-green" alt="fix - 8879716ca" /></a></td>
<td>expose unit test and karma builder API</td>
</tr>
<tr>
<td><a href="a415a4999f"><img src="https://img.shields.io/badge/a415a4999-fix-green" alt="fix - a415a4999" /></a></td>
<td>improve default coverage reporter handling for vitest</td>
</tr>
<tr>
<td><a href="e0de8680d1"><img src="https://img.shields.io/badge/e0de8680d-fix-green" alt="fix - e0de8680d" /></a></td>
<td>inject zone.js/testing before karma builder execution</td>
</tr>
<tr>
<td><a href="2672f6ec17"><img src="https://img.shields.io/badge/2672f6ec1-fix-green" alt="fix - 2672f6ec1" /></a></td>
<td>json and json-summary as vitest coverage reporters</td>
</tr>
<tr>
<td><a href="b67fdfd6bc"><img src="https://img.shields.io/badge/b67fdfd6b-fix-green" alt="fix - b67fdfd6b" /></a></td>
<td>resolve "Controller is already closed" error in Karma</td>
</tr>
<tr>
<td><a href="2784883ecf"><img src="https://img.shields.io/badge/2784883ec-fix-green" alt="fix - 2784883ec" /></a></td>
<td>support extra test setup files with unit-test vitest runner</td>
</tr>
<tr>
<td><a href="f177f5508a"><img src="https://img.shields.io/badge/f177f5508-fix-green" alt="fix - f177f5508" /></a></td>
<td>support injecting global styles into vitest unit-tests</td>
</tr>
<tr>
<td><a href="130c650146"><img src="https://img.shields.io/badge/130c65014-fix-green" alt="fix - 130c65014" /></a></td>
<td>use an empty array as default value for vitest exclude</td>
</tr>
<tr>
<td><a href="917af12aeb"><img src="https://img.shields.io/badge/917af12ae-fix-green" alt="fix - 917af12ae" /></a></td>
<td>use date/time based output path for vitest unit-test</td>
</tr>
</tbody>
</table>
<h3><code>@angular/ssr</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="21b5852f12"><img src="https://img.shields.io/badge/21b5852f1-fix-green" alt="fix - 21b5852f1" /></a></td>
<td>ensure <code>loadChildren</code> runs in correct injection context during route extraction</td>
</tr>
</tbody>
</table>
<h2>20.1.0-rc.0</h2>
<h3><code>@angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="f1d41b069d"><img src="https://img.shields.io/badge/f1d41b069-fix-green" alt="fix - f1d41b069" /></a></td>
<td>remove unused <code>@vitejs/plugin-basic-ssl</code> dependency</td>
</tr>
</tbody>
</table>
<h3><code>@angular/build</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="73f57f3c9e"><img src="https://img.shields.io/badge/73f57f3c9-fix-green" alt="fix - 73f57f3c9" /></a></td>
<td>proxy karma request from <code>/</code> to <code>/base</code></td>
</tr>
</tbody>
</table>
<h2>20.1.0-next.3</h2>
<h3><code>@schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="4221a33cc7"><img src="https://img.shields.io/badge/4221a33cc-fix-green" alt="fix - 4221a33cc" /></a></td>
<td>add missing prettier config</td>
</tr>
</tbody>
</table>
<h3><code>@angular/cli</code></h3>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular-cli/blob/main/CHANGELOG.md"><code>@angular/cli</code>'s changelog</a>.</em></p>
<blockquote>
<h1>20.1.0 (2025-07-09)</h1>
<h3><code>@angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="dc45c186ec">dc45c186e</a></td>
<td>feat</td>
<td>add initial MCP server implementation</td>
</tr>
</tbody>
</table>
<h3><code>@schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1c19e0dcd4">1c19e0dcd</a></td>
<td>feat</td>
<td>use signal in app component</td>
</tr>
</tbody>
</table>
<h3><code>@angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="49a09737d5">49a09737d</a></td>
<td>feat</td>
<td>provide partial custom postcss configuration support</td>
</tr>
</tbody>
</table>
<h3><code>@angular/build</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1159cf0810">1159cf081</a></td>
<td>feat</td>
<td>add code coverage reporters option for unit-test</td>
</tr>
<tr>
<td><a href="8f305ef0ba">8f305ef0b</a></td>
<td>feat</td>
<td>add dataurl, base64 loaders</td>
</tr>
<tr>
<td><a href="adfeee0a4c">adfeee0a4</a></td>
<td>fix</td>
<td>adjust coverage includes/excludes for unit-test vitest runner</td>
</tr>
<tr>
<td><a href="c19cd2985c">c19cd2985</a></td>
<td>fix</td>
<td>coverage reporter option</td>
</tr>
<tr>
<td><a href="8879716cac">8879716ca</a></td>
<td>fix</td>
<td>expose unit test and karma builder API</td>
</tr>
<tr>
<td><a href="a415a4999f">a415a4999</a></td>
<td>fix</td>
<td>improve default coverage reporter handling for vitest</td>
</tr>
<tr>
<td><a href="e0de8680d1">e0de8680d</a></td>
<td>fix</td>
<td>inject zone.js/testing before karma builder execution</td>
</tr>
<tr>
<td><a href="2672f6ec17">2672f6ec1</a></td>
<td>fix</td>
<td>json and json-summary as vitest coverage reporters</td>
</tr>
<tr>
<td><a href="b67fdfd6bc">b67fdfd6b</a></td>
<td>fix</td>
<td>resolve "Controller is already closed" error in Karma</td>
</tr>
<tr>
<td><a href="2784883ecf">2784883ec</a></td>
<td>fix</td>
<td>support extra test setup files with unit-test vitest runner</td>
</tr>
<tr>
<td><a href="f177f5508a">f177f5508</a></td>
<td>fix</td>
<td>support injecting global styles into vitest unit-tests</td>
</tr>
<tr>
<td><a href="130c650146">130c65014</a></td>
<td>fix</td>
<td>use an empty array as default value for vitest exclude</td>
</tr>
<tr>
<td><a href="917af12aeb">917af12ae</a></td>
<td>fix</td>
<td>use date/time based output path for vitest unit-test</td>
</tr>
</tbody>
</table>
<h3><code>@angular/ssr</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="21b5852f12">21b5852f1</a></td>
<td>fix</td>
<td>ensure <code>loadChildren</code> runs in correct injection context during route extraction</td>
</tr>
</tbody>
</table>
<h1>20.0.6 (2025-07-09)</h1>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ed09cef09c"><code>ed09cef</code></a> release: cut the v20.1.0 release</li>
<li><a href="bf6823db55"><code>bf6823d</code></a> build: update Angular versions for 20.1 stable</li>
<li><a href="aea3ed808e"><code>aea3ed8</code></a> fix(<code>@angular/build</code>): exclude <code>@vitest/browser/context</code> from esbuild bundling</li>
<li><a href="2784883ecf"><code>2784883</code></a> fix(<code>@angular/build</code>): support extra test setup files with unit-test vitest runner</li>
<li><a href="ace8a3544b"><code>ace8a35</code></a> test: increase timeout for ssr dev server tests</li>
<li><a href="b54a45bd3d"><code>b54a45b</code></a> refactor: reduce the number of builds done in output-path_spec</li>
<li><a href="be89073b92"><code>be89073</code></a> test: Reduce default timeouts</li>
<li><a href="4a791319d2"><code>4a79131</code></a> test: remove contents of <code>main.ts</code> from polyfill tests</li>
<li><a href="67e481ba0a"><code>67e481b</code></a> test: reduce karma test flakes by using <code>clearContext</code> that is set in the bui...</li>
<li><a href="f369d88653"><code>f369d88</code></a> build: change size to "medium" and "small"</li>
<li>Additional commits viewable in <a href="https://github.com/angular/angular-cli/compare/19.0.7...20.1.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>