dependabot[bot] opened a new pull request, #24:
URL: https://github.com/apache/fineract-consumer-facing/pull/24

   Bumps 
[@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common),
 [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms), 
[@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser),
 
[@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) 
and [@angular/build](https://github.com/angular/angular-cli). These 
dependencies needed to be updated together.
   Updates `@angular/common` from 20.3.21 to 22.0.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/releases";>@​angular/common's 
releases</a>.</em></p>
   <blockquote>
   <h2>22.0.2</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";><img
 src="https://img.shields.io/badge/94ea403563-fix-green"; alt="fix - 94ea403563" 
/></a></td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";><img
 src="https://img.shields.io/badge/6c1f3e9d49-fix-green"; alt="fix - 6c1f3e9d49" 
/></a></td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";><img
 src="https://img.shields.io/badge/6f1171991a-fix-green"; alt="fix - 6f1171991a" 
/></a></td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";><img
 src="https://img.shields.io/badge/528a34f766-fix-green"; alt="fix - 528a34f766" 
/></a></td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";><img
 src="https://img.shields.io/badge/e17e8d5422-fix-green"; alt="fix - e17e8d5422" 
/></a></td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";><img
 src="https://img.shields.io/badge/59dea13f80-fix-green"; alt="fix - 59dea13f80" 
/></a></td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";><img
 src="https://img.shields.io/badge/3a48abc15c-fix-green"; alt="fix - 3a48abc15c" 
/></a></td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";><img
 src="https://img.shields.io/badge/93d0a5f95c-fix-green"; alt="fix - 93d0a5f95c" 
/></a></td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";><img
 src="https://img.shields.io/badge/b32ee7ceb3-fix-green"; alt="fix - b32ee7ceb3" 
/></a></td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";><img
 src="https://img.shields.io/badge/f902d1d35e-perf-orange"; alt="perf - 
f902d1d35e" /></a></td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";><img
 src="https://img.shields.io/badge/6867f77ec7-fix-green"; alt="fix - 6867f77ec7" 
/></a></td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";><img
 src="https://img.shields.io/badge/7ef1399068-fix-green"; alt="fix - 7ef1399068" 
/></a></td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";><img
 src="https://img.shields.io/badge/15314c1736-fix-green"; alt="fix - 15314c1736" 
/></a></td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.1</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/c4b5fa3c9263ac127f5053c5a03dd4b6313659b8";><img
 src="https://img.shields.io/badge/c4b5fa3c92-fix-green"; alt="fix - c4b5fa3c92" 
/></a></td>
   <td>escape CSS string-terminating characters in escapeCssUrl</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/dfff57ede93dbc51a7eeac3311ff2b1279595ee5";><img
 src="https://img.shields.io/badge/dfff57ede9-fix-green"; alt="fix - dfff57ede9" 
/></a></td>
   <td>Limits date format string length</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3c2892c8dffbbbe32940306b53779cc0c4e3f73c";><img
 src="https://img.shields.io/badge/3c2892c8df-fix-green"; alt="fix - 3c2892c8df" 
/></a></td>
   <td>prevent prototype pollution in formatDateTime</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1d87c49f6ee4aac27146f39ef370a87ba707a2c1";><img
 src="https://img.shields.io/badge/1d87c49f6e-fix-green"; alt="fix - 1d87c49f6e" 
/></a></td>
   <td>use cryptographically secure SHA-256 for transfer cache key 
generation</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1ee224ca30b9b5a7906b4f481135f1fb900fb3ce";><img
 src="https://img.shields.io/badge/1ee224ca30-fix-green"; alt="fix - 1ee224ca30" 
/></a></td>
   <td>disallow i18n event attributes</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/a56f1cdf8fa24e335409250798ee804d95eae136";><img
 src="https://img.shields.io/badge/a56f1cdf8f-fix-green"; alt="fix - a56f1cdf8f" 
/></a></td>
   <td>more robust logic to check if regex can be optimized</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/5946c18275800539b2f47f80a573ee9312a45e8b";><img
 src="https://img.shields.io/badge/5946c18275-fix-green"; alt="fix - 5946c18275" 
/></a></td>
   <td>sanitize <code>href</code>/<code>xlink:href</code> attributes of any 
element of the MathML namespace</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/393b84caf8bda05b31cfac014751deed142eb918";><img
 src="https://img.shields.io/badge/393b84caf8-fix-green"; alt="fix - 393b84caf8" 
/></a></td>
   <td>sanitize two-way properties</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3d9ca2f1730689232f0ba1d6eddbd7dcedd1da39";><img
 src="https://img.shields.io/badge/3d9ca2f173-fix-green"; alt="fix - 3d9ca2f173" 
/></a></td>
   <td>bind switch exhaustive check expressions</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/blob/main/CHANGELOG.md";>@​angular/common's
 changelog</a>.</em></p>
   <blockquote>
   <h1>22.0.2 (2026-06-17)</h1>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";>94ea403563</a></td>
   <td>fix</td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";>6c1f3e9d49</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";>6f1171991a</a></td>
   <td>fix</td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";>528a34f766</a></td>
   <td>fix</td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";>e17e8d5422</a></td>
   <td>fix</td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";>59dea13f80</a></td>
   <td>fix</td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";>3a48abc15c</a></td>
   <td>fix</td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";>93d0a5f95c</a></td>
   <td>fix</td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";>b32ee7ceb3</a></td>
   <td>fix</td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";>f902d1d35e</a></td>
   <td>perf</td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";>6867f77ec7</a></td>
   <td>fix</td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";>7ef1399068</a></td>
   <td>fix</td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";>15314c1736</a></td>
   <td>fix</td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
   <h1>22.1.0-next.0 (2026-06-10)</h1>
   <h2>Deprecations</h2>
   <h3>http</h3>
   <ul>
   <li><code>HttpClient.jsonp</code>, <code>HttpClientJsonpModule</code>, and 
related JSONP classes/functions are deprecated. Use standard HTTP requests 
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="https://github.com/angular/angular/commit/1ad6824d0dd17a0515ad0544cf435d1e3af6982e";>1ad6824d0d</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69017";>#69017</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/25c744c4d0abd3bfe863ed2d528fea756ec5801b";>25c744c4d0</a></td>
   <td>fix</td>
   <td>support foreign components defined outside top-level scope</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/aeb55c8bc101dc313dc64f83f4428ddfad28d54e";>aeb55c8bc1</a></td>
   <td>fix</td>
   <td>allow passing uninvoked signals as foreign component props</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7c60a98b3ccc2090f3bfb3c76d6207f37a5df0ff";>7c60a98b3c</a></td>
   <td>fix</td>
   <td>support import aliases in foreignImports (<a 
href="https://redirect.github.com/angular/angular/pull/68674";>#68674</a>)</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";><code>6867f77</code></a>
 fix(http): distinguish repeated transfer cache params</li>
   <li><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";><code>6c1f3e9</code></a>
 fix(common): skip transfer cache for uncacheable HTTP traffic (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316";>#69316</a>)</li>
   <li><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";><code>7ef1399</code></a>
 fix(http): skip transfer cache for fetch credentialed requests (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316";>#69316</a>)</li>
   <li><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";><code>94ea403</code></a>
 fix(common): escape anchor fragment in shadow DOM name selector</li>
   <li><a 
href="https://github.com/angular/angular/commit/2dd65d21e656186cd2598a11dd51a34fcab2ecfe";><code>2dd65d2</code></a>
 fix(http): pass down the <code>reportUploadProgress</code> and 
<code>reportDownloadProgress</code> ...</li>
   <li><a 
href="https://github.com/angular/angular/commit/1bd5a562f54b8ec7378e7c7f928285be59091f97";><code>1bd5a56</code></a>
 docs: deprecate XHR support for server-side rendering in HTTP docs and 
recomm...</li>
   <li><a 
href="https://github.com/angular/angular/commit/3c2892c8dffbbbe32940306b53779cc0c4e3f73c";><code>3c2892c</code></a>
 fix(common): prevent prototype pollution in formatDateTime</li>
   <li><a 
href="https://github.com/angular/angular/commit/c4b5fa3c9263ac127f5053c5a03dd4b6313659b8";><code>c4b5fa3</code></a>
 fix(common): escape CSS string-terminating characters in escapeCssUrl</li>
   <li><a 
href="https://github.com/angular/angular/commit/4254eb416c81570a6d3313711aaeba7817305320";><code>4254eb4</code></a>
 fix(http): preserve empty referrer option in HttpRequest</li>
   <li><a 
href="https://github.com/angular/angular/commit/167bd4c162d6af87cd207650bbc41d6c7a073c22";><code>167bd4c</code></a>
 fix(http): Rejects non-HTTP(S) URLs in JSONP requests</li>
   <li>Additional commits viewable in <a 
href="https://github.com/angular/angular/commits/v22.0.2/packages/common";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@angular/forms` from 20.3.21 to 22.0.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/releases";>@​angular/forms's 
releases</a>.</em></p>
   <blockquote>
   <h2>22.0.2</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";><img
 src="https://img.shields.io/badge/94ea403563-fix-green"; alt="fix - 94ea403563" 
/></a></td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";><img
 src="https://img.shields.io/badge/6c1f3e9d49-fix-green"; alt="fix - 6c1f3e9d49" 
/></a></td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";><img
 src="https://img.shields.io/badge/6f1171991a-fix-green"; alt="fix - 6f1171991a" 
/></a></td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";><img
 src="https://img.shields.io/badge/528a34f766-fix-green"; alt="fix - 528a34f766" 
/></a></td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";><img
 src="https://img.shields.io/badge/e17e8d5422-fix-green"; alt="fix - e17e8d5422" 
/></a></td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";><img
 src="https://img.shields.io/badge/59dea13f80-fix-green"; alt="fix - 59dea13f80" 
/></a></td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";><img
 src="https://img.shields.io/badge/3a48abc15c-fix-green"; alt="fix - 3a48abc15c" 
/></a></td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";><img
 src="https://img.shields.io/badge/93d0a5f95c-fix-green"; alt="fix - 93d0a5f95c" 
/></a></td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";><img
 src="https://img.shields.io/badge/b32ee7ceb3-fix-green"; alt="fix - b32ee7ceb3" 
/></a></td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";><img
 src="https://img.shields.io/badge/f902d1d35e-perf-orange"; alt="perf - 
f902d1d35e" /></a></td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";><img
 src="https://img.shields.io/badge/6867f77ec7-fix-green"; alt="fix - 6867f77ec7" 
/></a></td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";><img
 src="https://img.shields.io/badge/7ef1399068-fix-green"; alt="fix - 7ef1399068" 
/></a></td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";><img
 src="https://img.shields.io/badge/15314c1736-fix-green"; alt="fix - 15314c1736" 
/></a></td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.1</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/c4b5fa3c9263ac127f5053c5a03dd4b6313659b8";><img
 src="https://img.shields.io/badge/c4b5fa3c92-fix-green"; alt="fix - c4b5fa3c92" 
/></a></td>
   <td>escape CSS string-terminating characters in escapeCssUrl</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/dfff57ede93dbc51a7eeac3311ff2b1279595ee5";><img
 src="https://img.shields.io/badge/dfff57ede9-fix-green"; alt="fix - dfff57ede9" 
/></a></td>
   <td>Limits date format string length</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3c2892c8dffbbbe32940306b53779cc0c4e3f73c";><img
 src="https://img.shields.io/badge/3c2892c8df-fix-green"; alt="fix - 3c2892c8df" 
/></a></td>
   <td>prevent prototype pollution in formatDateTime</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1d87c49f6ee4aac27146f39ef370a87ba707a2c1";><img
 src="https://img.shields.io/badge/1d87c49f6e-fix-green"; alt="fix - 1d87c49f6e" 
/></a></td>
   <td>use cryptographically secure SHA-256 for transfer cache key 
generation</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1ee224ca30b9b5a7906b4f481135f1fb900fb3ce";><img
 src="https://img.shields.io/badge/1ee224ca30-fix-green"; alt="fix - 1ee224ca30" 
/></a></td>
   <td>disallow i18n event attributes</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/a56f1cdf8fa24e335409250798ee804d95eae136";><img
 src="https://img.shields.io/badge/a56f1cdf8f-fix-green"; alt="fix - a56f1cdf8f" 
/></a></td>
   <td>more robust logic to check if regex can be optimized</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/5946c18275800539b2f47f80a573ee9312a45e8b";><img
 src="https://img.shields.io/badge/5946c18275-fix-green"; alt="fix - 5946c18275" 
/></a></td>
   <td>sanitize <code>href</code>/<code>xlink:href</code> attributes of any 
element of the MathML namespace</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/393b84caf8bda05b31cfac014751deed142eb918";><img
 src="https://img.shields.io/badge/393b84caf8-fix-green"; alt="fix - 393b84caf8" 
/></a></td>
   <td>sanitize two-way properties</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3d9ca2f1730689232f0ba1d6eddbd7dcedd1da39";><img
 src="https://img.shields.io/badge/3d9ca2f173-fix-green"; alt="fix - 3d9ca2f173" 
/></a></td>
   <td>bind switch exhaustive check expressions</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/blob/main/CHANGELOG.md";>@​angular/forms's
 changelog</a>.</em></p>
   <blockquote>
   <h1>22.0.2 (2026-06-17)</h1>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";>94ea403563</a></td>
   <td>fix</td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";>6c1f3e9d49</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";>6f1171991a</a></td>
   <td>fix</td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";>528a34f766</a></td>
   <td>fix</td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";>e17e8d5422</a></td>
   <td>fix</td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";>59dea13f80</a></td>
   <td>fix</td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";>3a48abc15c</a></td>
   <td>fix</td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";>93d0a5f95c</a></td>
   <td>fix</td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";>b32ee7ceb3</a></td>
   <td>fix</td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";>f902d1d35e</a></td>
   <td>perf</td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";>6867f77ec7</a></td>
   <td>fix</td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";>7ef1399068</a></td>
   <td>fix</td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";>15314c1736</a></td>
   <td>fix</td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
   <h1>22.1.0-next.0 (2026-06-10)</h1>
   <h2>Deprecations</h2>
   <h3>http</h3>
   <ul>
   <li><code>HttpClient.jsonp</code>, <code>HttpClientJsonpModule</code>, and 
related JSONP classes/functions are deprecated. Use standard HTTP requests 
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="https://github.com/angular/angular/commit/1ad6824d0dd17a0515ad0544cf435d1e3af6982e";>1ad6824d0d</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69017";>#69017</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/25c744c4d0abd3bfe863ed2d528fea756ec5801b";>25c744c4d0</a></td>
   <td>fix</td>
   <td>support foreign components defined outside top-level scope</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/aeb55c8bc101dc313dc64f83f4428ddfad28d54e";>aeb55c8bc1</a></td>
   <td>fix</td>
   <td>allow passing uninvoked signals as foreign component props</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7c60a98b3ccc2090f3bfb3c76d6207f37a5df0ff";>7c60a98b3c</a></td>
   <td>fix</td>
   <td>support import aliases in foreignImports (<a 
href="https://redirect.github.com/angular/angular/pull/68674";>#68674</a>)</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/angular/angular/commit/3f055435f6e2f5f9824bc8f70d061b284bea7c80";><code>3f05543</code></a>
 refactor(forms): fix initWebMcpForm description to be required</li>
   <li><a 
href="https://github.com/angular/angular/commit/11836a670af5c64153d57a2d47b4688605379014";><code>11836a6</code></a>
 fix(forms): delay mcp reading the form model by a <code>tick</code></li>
   <li><a 
href="https://github.com/angular/angular/commit/e51ad374ea628de33843332f6798635dc8af02ae";><code>e51ad37</code></a>
 fix(forms): remove animationstart listener on component destroy to prevent 
me...</li>
   <li><a 
href="https://github.com/angular/angular/commit/85d2d100e38999f1342742573166c7af0f29b4bd";><code>85d2d10</code></a>
 fix(forms): harden FormGroup control lookups against prototype shadowing</li>
   <li><a 
href="https://github.com/angular/angular/commit/cdcea80327e8984981144d99194d7b194da4889f";><code>cdcea80</code></a>
 fix(core): require WebMCP tool descriptions</li>
   <li><a 
href="https://github.com/angular/angular/commit/55b7b5a6b6324c1886eca8dbc492e6af5fc4cd7a";><code>55b7b5a</code></a>
 fix(forms): set <code>additionalProperties: false</code> on generated WebMCP 
form</li>
   <li><a 
href="https://github.com/angular/angular/commit/e81c7e84669e06f70aff0ca80dc3792809afdbd3";><code>e81c7e8</code></a>
 refactor(forms): type built-in getError results</li>
   <li><a 
href="https://github.com/angular/angular/commit/eb600aa3b265b559b456408617220744d8dd3b24";><code>eb600aa</code></a>
 refactor(forms): mark date and limit signal forms APIs public</li>
   <li><a 
href="https://github.com/angular/angular/commit/a97d5ec22d8997665dc2de3d5a78f6e2bac67afd";><code>a97d5ec</code></a>
 build: update minimum supported Node.js versions</li>
   <li><a 
href="https://github.com/angular/angular/commit/3b4ef1e2ffa7f33583b9d6c5d927e2148a507921";><code>3b4ef1e</code></a>
 perf(forms): avoid redundant invalidations in parser errors signal</li>
   <li>Additional commits viewable in <a 
href="https://github.com/angular/angular/commits/v22.0.2/packages/forms";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@angular/platform-browser` from 20.3.21 to 22.0.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/releases";>@​angular/platform-browser's 
releases</a>.</em></p>
   <blockquote>
   <h2>22.0.2</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";><img
 src="https://img.shields.io/badge/94ea403563-fix-green"; alt="fix - 94ea403563" 
/></a></td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";><img
 src="https://img.shields.io/badge/6c1f3e9d49-fix-green"; alt="fix - 6c1f3e9d49" 
/></a></td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";><img
 src="https://img.shields.io/badge/6f1171991a-fix-green"; alt="fix - 6f1171991a" 
/></a></td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";><img
 src="https://img.shields.io/badge/528a34f766-fix-green"; alt="fix - 528a34f766" 
/></a></td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";><img
 src="https://img.shields.io/badge/e17e8d5422-fix-green"; alt="fix - e17e8d5422" 
/></a></td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";><img
 src="https://img.shields.io/badge/59dea13f80-fix-green"; alt="fix - 59dea13f80" 
/></a></td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";><img
 src="https://img.shields.io/badge/3a48abc15c-fix-green"; alt="fix - 3a48abc15c" 
/></a></td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";><img
 src="https://img.shields.io/badge/93d0a5f95c-fix-green"; alt="fix - 93d0a5f95c" 
/></a></td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";><img
 src="https://img.shields.io/badge/b32ee7ceb3-fix-green"; alt="fix - b32ee7ceb3" 
/></a></td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";><img
 src="https://img.shields.io/badge/f902d1d35e-perf-orange"; alt="perf - 
f902d1d35e" /></a></td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";><img
 src="https://img.shields.io/badge/6867f77ec7-fix-green"; alt="fix - 6867f77ec7" 
/></a></td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";><img
 src="https://img.shields.io/badge/7ef1399068-fix-green"; alt="fix - 7ef1399068" 
/></a></td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";><img
 src="https://img.shields.io/badge/15314c1736-fix-green"; alt="fix - 15314c1736" 
/></a></td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.1</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/c4b5fa3c9263ac127f5053c5a03dd4b6313659b8";><img
 src="https://img.shields.io/badge/c4b5fa3c92-fix-green"; alt="fix - c4b5fa3c92" 
/></a></td>
   <td>escape CSS string-terminating characters in escapeCssUrl</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/dfff57ede93dbc51a7eeac3311ff2b1279595ee5";><img
 src="https://img.shields.io/badge/dfff57ede9-fix-green"; alt="fix - dfff57ede9" 
/></a></td>
   <td>Limits date format string length</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3c2892c8dffbbbe32940306b53779cc0c4e3f73c";><img
 src="https://img.shields.io/badge/3c2892c8df-fix-green"; alt="fix - 3c2892c8df" 
/></a></td>
   <td>prevent prototype pollution in formatDateTime</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1d87c49f6ee4aac27146f39ef370a87ba707a2c1";><img
 src="https://img.shields.io/badge/1d87c49f6e-fix-green"; alt="fix - 1d87c49f6e" 
/></a></td>
   <td>use cryptographically secure SHA-256 for transfer cache key 
generation</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1ee224ca30b9b5a7906b4f481135f1fb900fb3ce";><img
 src="https://img.shields.io/badge/1ee224ca30-fix-green"; alt="fix - 1ee224ca30" 
/></a></td>
   <td>disallow i18n event attributes</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/a56f1cdf8fa24e335409250798ee804d95eae136";><img
 src="https://img.shields.io/badge/a56f1cdf8f-fix-green"; alt="fix - a56f1cdf8f" 
/></a></td>
   <td>more robust logic to check if regex can be optimized</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/5946c18275800539b2f47f80a573ee9312a45e8b";><img
 src="https://img.shields.io/badge/5946c18275-fix-green"; alt="fix - 5946c18275" 
/></a></td>
   <td>sanitize <code>href</code>/<code>xlink:href</code> attributes of any 
element of the MathML namespace</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/393b84caf8bda05b31cfac014751deed142eb918";><img
 src="https://img.shields.io/badge/393b84caf8-fix-green"; alt="fix - 393b84caf8" 
/></a></td>
   <td>sanitize two-way properties</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3d9ca2f1730689232f0ba1d6eddbd7dcedd1da39";><img
 src="https://img.shields.io/badge/3d9ca2f173-fix-green"; alt="fix - 3d9ca2f173" 
/></a></td>
   <td>bind switch exhaustive check expressions</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/blob/main/CHANGELOG.md";>@​angular/platform-browser's
 changelog</a>.</em></p>
   <blockquote>
   <h1>22.0.2 (2026-06-17)</h1>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";>94ea403563</a></td>
   <td>fix</td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";>6c1f3e9d49</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";>6f1171991a</a></td>
   <td>fix</td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";>528a34f766</a></td>
   <td>fix</td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";>e17e8d5422</a></td>
   <td>fix</td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";>59dea13f80</a></td>
   <td>fix</td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";>3a48abc15c</a></td>
   <td>fix</td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";>93d0a5f95c</a></td>
   <td>fix</td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";>b32ee7ceb3</a></td>
   <td>fix</td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";>f902d1d35e</a></td>
   <td>perf</td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";>6867f77ec7</a></td>
   <td>fix</td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";>7ef1399068</a></td>
   <td>fix</td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";>15314c1736</a></td>
   <td>fix</td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
   <h1>22.1.0-next.0 (2026-06-10)</h1>
   <h2>Deprecations</h2>
   <h3>http</h3>
   <ul>
   <li><code>HttpClient.jsonp</code>, <code>HttpClientJsonpModule</code>, and 
related JSONP classes/functions are deprecated. Use standard HTTP requests 
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="https://github.com/angular/angular/commit/1ad6824d0dd17a0515ad0544cf435d1e3af6982e";>1ad6824d0d</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69017";>#69017</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/25c744c4d0abd3bfe863ed2d528fea756ec5801b";>25c744c4d0</a></td>
   <td>fix</td>
   <td>support foreign components defined outside top-level scope</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/aeb55c8bc101dc313dc64f83f4428ddfad28d54e";>aeb55c8bc1</a></td>
   <td>fix</td>
   <td>allow passing uninvoked signals as foreign component props</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7c60a98b3ccc2090f3bfb3c76d6207f37a5df0ff";>7c60a98b3c</a></td>
   <td>fix</td>
   <td>support import aliases in foreignImports (<a 
href="https://redirect.github.com/angular/angular/pull/68674";>#68674</a>)</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/angular/angular/commit/d9c38e552db7efd868c4de815d6cde4ab0b14bc0";><code>d9c38e5</code></a>
 docs: fix typos in source code comments</li>
   <li><a 
href="https://github.com/angular/angular/commit/a97d5ec22d8997665dc2de3d5a78f6e2bac67afd";><code>a97d5ec</code></a>
 build: update minimum supported Node.js versions</li>
   <li><a 
href="https://github.com/angular/angular/commit/0d9a245345c5bb3013849d924efbfa3676b520a0";><code>0d9a245</code></a>
 fix(core): sanitize meta selectors</li>
   <li><a 
href="https://github.com/angular/angular/commit/ad717dff1d1aa3d18461b68b5048324001ac4417";><code>ad717df</code></a>
 refactor(core): use the <code>@Service</code> decorator where possible.</li>
   <li><a 
href="https://github.com/angular/angular/commit/5a7c1e62dc2a4fa199b85150eca66914c107a6f4";><code>5a7c1e6</code></a>
 feat(core): add ability to cache resources for SSR</li>
   <li><a 
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa";><code>b8d3f36</code></a>
 feat(compiler-cli): add support for Node.js 26.0.0</li>
   <li><a 
href="https://github.com/angular/angular/commit/4ad3a1fe3793843270982e95389a3fefcb2c02e3";><code>4ad3a1f</code></a>
 refactor(core): Don't throw when there are not async metadata</li>
   <li><a 
href="https://github.com/angular/angular/commit/7f3f3d7da1ed9f978fef5ac39f78dea292832b4c";><code>7f3f3d7</code></a>
 ci: remove remainings of saucelabs tests</li>
   <li><a 
href="https://github.com/angular/angular/commit/9f479ae9641a5c928f8eeab9c7846245002b3eff";><code>9f479ae</code></a>
 feat(core): Update Testability to use PendingTasks for stability indicator</li>
   <li><a 
href="https://github.com/angular/angular/commit/0454d4ced7ece95e3b21b1e6df6dde0e92ac3ee4";><code>0454d4c</code></a>
 refactor(core): deprecate <code>withIncrementalHydration</code></li>
   <li>Additional commits viewable in <a 
href="https://github.com/angular/angular/commits/v22.0.2/packages/platform-browser";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@angular/router` from 20.3.21 to 22.0.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/releases";>@​angular/router's 
releases</a>.</em></p>
   <blockquote>
   <h2>22.0.2</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";><img
 src="https://img.shields.io/badge/94ea403563-fix-green"; alt="fix - 94ea403563" 
/></a></td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";><img
 src="https://img.shields.io/badge/6c1f3e9d49-fix-green"; alt="fix - 6c1f3e9d49" 
/></a></td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";><img
 src="https://img.shields.io/badge/6f1171991a-fix-green"; alt="fix - 6f1171991a" 
/></a></td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";><img
 src="https://img.shields.io/badge/528a34f766-fix-green"; alt="fix - 528a34f766" 
/></a></td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";><img
 src="https://img.shields.io/badge/e17e8d5422-fix-green"; alt="fix - e17e8d5422" 
/></a></td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";><img
 src="https://img.shields.io/badge/59dea13f80-fix-green"; alt="fix - 59dea13f80" 
/></a></td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";><img
 src="https://img.shields.io/badge/3a48abc15c-fix-green"; alt="fix - 3a48abc15c" 
/></a></td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";><img
 src="https://img.shields.io/badge/93d0a5f95c-fix-green"; alt="fix - 93d0a5f95c" 
/></a></td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";><img
 src="https://img.shields.io/badge/b32ee7ceb3-fix-green"; alt="fix - b32ee7ceb3" 
/></a></td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";><img
 src="https://img.shields.io/badge/f902d1d35e-perf-orange"; alt="perf - 
f902d1d35e" /></a></td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";><img
 src="https://img.shields.io/badge/6867f77ec7-fix-green"; alt="fix - 6867f77ec7" 
/></a></td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";><img
 src="https://img.shields.io/badge/7ef1399068-fix-green"; alt="fix - 7ef1399068" 
/></a></td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";><img
 src="https://img.shields.io/badge/15314c1736-fix-green"; alt="fix - 15314c1736" 
/></a></td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.1</h2>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/c4b5fa3c9263ac127f5053c5a03dd4b6313659b8";><img
 src="https://img.shields.io/badge/c4b5fa3c92-fix-green"; alt="fix - c4b5fa3c92" 
/></a></td>
   <td>escape CSS string-terminating characters in escapeCssUrl</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/dfff57ede93dbc51a7eeac3311ff2b1279595ee5";><img
 src="https://img.shields.io/badge/dfff57ede9-fix-green"; alt="fix - dfff57ede9" 
/></a></td>
   <td>Limits date format string length</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3c2892c8dffbbbe32940306b53779cc0c4e3f73c";><img
 src="https://img.shields.io/badge/3c2892c8df-fix-green"; alt="fix - 3c2892c8df" 
/></a></td>
   <td>prevent prototype pollution in formatDateTime</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1d87c49f6ee4aac27146f39ef370a87ba707a2c1";><img
 src="https://img.shields.io/badge/1d87c49f6e-fix-green"; alt="fix - 1d87c49f6e" 
/></a></td>
   <td>use cryptographically secure SHA-256 for transfer cache key 
generation</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/1ee224ca30b9b5a7906b4f481135f1fb900fb3ce";><img
 src="https://img.shields.io/badge/1ee224ca30-fix-green"; alt="fix - 1ee224ca30" 
/></a></td>
   <td>disallow i18n event attributes</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/a56f1cdf8fa24e335409250798ee804d95eae136";><img
 src="https://img.shields.io/badge/a56f1cdf8f-fix-green"; alt="fix - a56f1cdf8f" 
/></a></td>
   <td>more robust logic to check if regex can be optimized</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/5946c18275800539b2f47f80a573ee9312a45e8b";><img
 src="https://img.shields.io/badge/5946c18275-fix-green"; alt="fix - 5946c18275" 
/></a></td>
   <td>sanitize <code>href</code>/<code>xlink:href</code> attributes of any 
element of the MathML namespace</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/393b84caf8bda05b31cfac014751deed142eb918";><img
 src="https://img.shields.io/badge/393b84caf8-fix-green"; alt="fix - 393b84caf8" 
/></a></td>
   <td>sanitize two-way properties</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3d9ca2f1730689232f0ba1d6eddbd7dcedd1da39";><img
 src="https://img.shields.io/badge/3d9ca2f173-fix-green"; alt="fix - 3d9ca2f173" 
/></a></td>
   <td>bind switch exhaustive check expressions</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular/blob/main/CHANGELOG.md";>@​angular/router's
 changelog</a>.</em></p>
   <blockquote>
   <h1>22.0.2 (2026-06-17)</h1>
   <h3>common</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475";>94ea403563</a></td>
   <td>fix</td>
   <td>escape anchor fragment in shadow DOM name selector</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf";>6c1f3e9d49</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53";>6f1171991a</a></td>
   <td>fix</td>
   <td>restrict possible event handler check to property names longer than 2 
characters</td>
   </tr>
   </tbody>
   </table>
   <h3>core</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49";>528a34f766</a></td>
   <td>fix</td>
   <td>avoid caching missing locale data</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b";>e17e8d5422</a></td>
   <td>fix</td>
   <td>escape overlapping comment delimiters in escapeCommentText</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15";>59dea13f80</a></td>
   <td>fix</td>
   <td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/3a48abc15c038692a856c588c3037cd51e035f0b";>3a48abc15c</a></td>
   <td>fix</td>
   <td>preserve leave animation for sibling instances sharing a TNode</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/93d0a5f95c9376272b5ebf71e94ff3ddb25a294d";>93d0a5f95c</a></td>
   <td>fix</td>
   <td>prevent unsubscribe during emit from throwing off other listeners</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966";>b32ee7ceb3</a></td>
   <td>fix</td>
   <td>treat iframe credentialless as security-sensitive</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190";>f902d1d35e</a></td>
   <td>perf</td>
   <td>detect existing signal dependency without checking all producer 
links</td>
   </tr>
   </tbody>
   </table>
   <h3>http</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c";>6867f77ec7</a></td>
   <td>fix</td>
   <td>distinguish repeated transfer cache params</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d";>7ef1399068</a></td>
   <td>fix</td>
   <td>skip transfer cache for fetch credentialed requests (<a 
href="https://redirect.github.com/angular/angular/pull/69316";>#69316</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>migrations</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/15314c1736afd9cafb24518cd458768973169d24";>15314c1736</a></td>
   <td>fix</td>
   <td>migration skip any target are not build or test</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
   <h1>22.1.0-next.0 (2026-06-10)</h1>
   <h2>Deprecations</h2>
   <h3>http</h3>
   <ul>
   <li><code>HttpClient.jsonp</code>, <code>HttpClientJsonpModule</code>, and 
related JSONP classes/functions are deprecated. Use standard HTTP requests 
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="https://github.com/angular/angular/commit/1ad6824d0dd17a0515ad0544cf435d1e3af6982e";>1ad6824d0d</a></td>
   <td>fix</td>
   <td>skip transfer cache for uncacheable HTTP traffic (<a 
href="https://redirect.github.com/angular/angular/pull/69017";>#69017</a>)</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/25c744c4d0abd3bfe863ed2d528fea756ec5801b";>25c744c4d0</a></td>
   <td>fix</td>
   <td>support foreign components defined outside top-level scope</td>
   </tr>
   </tbody>
   </table>
   <h3>compiler-cli</h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Type</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/aeb55c8bc101dc313dc64f83f4428ddfad28d54e";>aeb55c8bc1</a></td>
   <td>fix</td>
   <td>allow passing uninvoked signals as foreign component props</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular/commit/7c60a98b3ccc2090f3bfb3c76d6207f37a5df0ff";>7c60a98b3c</a></td>
   <td>fix</td>
   <td>support import aliases in foreignImports (<a 
href="https://redirect.github.com/angular/angular/pull/68674";>#68674</a>)</td>
   </tr>
   </tbody>
   </table>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/angular/angular/commit/81cb4570b2297d8af1a7287e2275758afc5b9acb";><code>81cb457</code></a>
 refactor(router): Add handling for ActivatedRoute-scoped injector</li>
   <li><a 
href="https://github.com/angular/angular/commit/43edc8410f2ef9feed8efe1b52c509c167f72946";><code>43edc84</code></a>
 fix(router): use native URL object for navigation boundary and comparison</li>
   <li><a 
href="https://github.com/angular/angular/commit/76a8c877251443bfd77ca1265034a6da0509b2e1";><code>76a8c87</code></a>
 refactor(core): Split the ng global into internal and external objects</li>
   <li><a 
href="https://github.com/angular/angular/commit/a97d5ec22d8997665dc2de3d5a78f6e2bac67afd";><code>a97d5ec</code></a>
 build: update minimum supported Node.js versions</li>
   <li><a 
href="https://github.com/angular/angular/commit/3e5ab7b470b06b63410649700b6a999e381cbb85";><code>3e5ab7b</code></a>
 fix(router): skip scroll-to-top on initial navigation when hydrating</li>
   <li><a 
href="https://github.com/angular/angular/commit/3e7117d690386b079c18b435545dab96fc183305";><code>3e7117d</code></a>
 fix(router): Add strict typing on 'getResolvedTitleForRoute'</li>
   <li><a 
href="https://github.com/angular/angular/commit/e9d1c7ed563c349330a2c842452a5db4a8046f92";><code>e9d1c7e</code></a>
 refactor(router): Move target RouterState creation before 'blocking' stage</li>
   <li><a 
href="https://github.com/angular/angular/commit/ad717dff1d1aa3d18461b68b5048324001ac4417";><code>ad717df</code></a>
 refactor(core): use the <code>@Service</code> decorator where possible.</li>
   <li><a 
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa";><code>b8d3f36</code></a>
 feat(compiler-cli): add support for Node.js 26.0.0</li>
   <li><a 
href="https://github.com/angular/angular/commit/8a7f955f0fd7484cfc23e6e3fe91453973908f1f";><code>8a7f955</code></a>
 docs: correct &quot;Angular JS&quot; to &quot;AngularJS&quot;</li>
   <li>Additional commits viewable in <a 
href="https://github.com/angular/angular/commits/v22.0.2/packages/router";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@angular/build` from 20.3.26 to 22.0.3
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/angular/angular-cli/releases";>@​angular/build's 
releases</a>.</em></p>
   <blockquote>
   <h2>22.0.3</h2>
   <h3><code>@​schematics/angular</code></h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/0eddea898d3bf4da8c9c5c27ec2ee79916e8be87";><img
 src="https://img.shields.io/badge/0eddea898-fix-green"; alt="fix - 0eddea898" 
/></a></td>
   <td>remove default workspace vscode mcp.json configuration</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.2</h2>
   <h3><code>@​angular/cli</code></h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/136fc27149af74263ef519007f0a74f9f85c5b4d";><img
 src="https://img.shields.io/badge/136fc2714-fix-green"; alt="fix - 136fc2714" 
/></a></td>
   <td>support registry metadata fetching under bun package manager</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/2653dd5c7d47149b61bfe6edf4ab1281347e89dd";><img
 src="https://img.shields.io/badge/2653dd5c7-perf-orange"; alt="perf - 
2653dd5c7" /></a></td>
   <td>implement semaphore backpressure throttling in PackageManager</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="https://github.com/angular/angular-cli/commit/0b4a48add9d7218e698af0db974bd597bed8a121";><img
 src="https://img.shields.io/badge/0b4a48add-perf-orange"; alt="perf - 
0b4a48add" /></a></td>
   <td>implement semaphore backpressure throttling in JavaScriptTransformer</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="https://github.com/angular/angular-cli/commit/d996a27e9744b473a7db56f81871731b8bdce585";><img
 src="https://img.shields.io/badge/d996a27e9-fix-green"; alt="fix - d996a27e9" 
/></a></td>
   <td>avoid caching non-SSG page lookups</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/285a34e42f1cdc512468de0041b232c7190e7d7e";><img
 src="https://img.shields.io/badge/285a34e42-fix-green"; alt="fix - 285a34e42" 
/></a></td>
   <td>correct grammar in console warning for redirected location headers</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/c8088a536c2c747a273e37be682643e1b35e2f75";><img
 src="https://img.shields.io/badge/c8088a536-fix-green"; alt="fix - c8088a536" 
/></a></td>
   <td>prioritize options over environment variables in 
AngularNodeAppEngine</td>
   </tr>
   </tbody>
   </table>
   <h2>22.0.1</h2>
   <h3><code>@​schematics/angular</code></h3>
   <table>
   <thead>
   <tr>
   <th>Commit</th>
   <th>Description</th>
   </tr>
   </thead>
   <tbody>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/c8001229453211b37cd7bb12ed26a2deb9257fd5";><img
 src="https://img.shields.io/badge/c80012294-fix-green"; alt="fix - c80012294" 
/></a></td>
   <td>fix browserMode option mapping in refactor-jasmine-vitest</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/a9b6bd9042d6b859c384a6fc782541fca30dfb68";><img
 src="https://img.shields.io/badge/a9b6bd904-fix-green"; alt="fix - a9b6bd904" 
/></a></td>
   <td>safely comment out multiline statements in refactor-jasmine-vitest</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/12199df00f2e3e8436ada13e04799e5825eb3f7b";><img
 src="https://img.shields.io/badge/12199df00-fix-green"; alt="fix - 12199df00" 
/></a></td>
   <td>use null objects and callbacks in karma-to-vitest migration</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="https://github.com/angular/angular-cli/commit/b54e9a549d30871f6017b1db4cf7a4ab5f3e02db";><img
 src="https://img.shields.io/badge/b54e9a549-fix-green"; alt="fix - b54e9a549" 
/></a></td>
   <td>do not sort migrations of the same version alphabetically</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/d333116123c7d3d5e87713b7baac048b78f28517";><img
 src="https://img.shields.io/badge/d33311612-fix-green"; alt="fix - d33311612" 
/></a></td>
   <td>fallback to local package.json for schematic detection on first run</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/918102a9373085394c41f10d9f5df3e3c17b263f";><img
 src="https://img.shields.io/badge/918102a93-fix-green"; alt="fix - 918102a93" 
/></a></td>
   <td>isolate temporary package installation from parent pnpm workspace</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/b048b5f4a83d7b20095d79654b849808e7d58fdb";><img
 src="https://img.shields.io/badge/b048b5f4a-fix-green"; alt="fix - b048b5f4a" 
/></a></td>
   <td>remove forceAuth and unscoped credential parsing</td>
   </tr>
   <tr>
   <td><a 
href="https://github.com/angular/angular-cli/commit/277934035138c5af803e8daeebc2313f0a4cb5b3";><img
 src="https://img.shields.io/badge/277934035-fix-green"; alt="fix - 277934035" 
/></a></td>
   <td>validate registry option is a valid URL in ng add</td>
   </tr>
   <tr>...
   
   _Description has been truncated_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to